前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IT武林的一项绝学:Ansible

IT武林的一项绝学:Ansible

作者头像
魏新宇
发布2018-03-22 15:12:18
1.1K0
发布2018-03-22 15:12:18
举报

IT的武林 如果把IT圈当成一个武林,里面有各大门派并充斥着各种武功的话,ansile绝对是一项杀伤力极强的内功。ansible本身配置和使用极为方便,并能够以此驱动其他武功,如操作系统、虚拟化、云计算、应用的部署和配置管理。接下来,我们先看一下这项神功的精妙所在。

IT武林的Ansible

而Ansible是什么?一句话而言:其本质是能够提供配置管理、应用部署、服务自动化的工具。这样的描述是不是太简单了?非也,我们进行展开讨论。

配置管理的对象通常是操作系统,谈到操作系统,Ansible管理操作系统的可以是RHEL,可以是centos,也可以是其他Linux。操作系统可以装在物理机上,可以装在虚拟机上,甚至可以装在云上。

其次说配置管理。对于很多IT运维老炮而言,配置管理那都是见怪不怪的了。比如,修改linux配置文件、打补丁、启动服务等都属于配置管理。大多数linux上的配置管理我们怎么做?SSH上去,敲命令行,或者实现写好一个脚本,上传到被配置的linux系统中,然后进行执行。

既然操作系统的配置管理是个已经存在了N年的事情,那么ansible的价值在哪?

首先来讲,在传统IT时代,10几台小型机、几台高端存储足以支撑中等规模的非IT企业的IT业务系统。那时候其实管理员的工作相对是小的。这点笔者在2005年做UNIX售后是深有感触的。

而随着X86,虚拟化的普及以及云时代的到来,以及很多应用实现了分布式,OSI(操作系统实例)数量倍增。不夸张的说,大型商业银行数据中心操作系统的数量,可能多达上万。而这些操作系统中,我相信windows应该占少数,而linux占多数。在这种情况下,系统的配置管理如何做?再挨个登录敲命令行一来太累,二来风险太大,哪天不想小心把 rm –rf ./* 的点没敲上,或是把屏幕上趴着的蚊子成了点,那是要出大事的。

与传统配置管理工具,如puppet相比,ansible的第一个好处是简单,不需要安装agent。Ansible也是分为管理节点和远程被管节点。那么管理节点和被管节点如何通讯?很简单,通过ssh。即在让管理节点可以无密码ssh登录被管节点即可。Ansible还有其他很多好处,比如配置简单、开销小等。

Ansible安装起来非常简单,如果是RHEL的话,一条命令足以:

#yum –y install ansible

而在被管理的节点上,只需安装python即可,而python,rhel是自带的。

谈到这里,会有读者问,如果OSI的数量太多,配置SSH的工作量也很大,其次,这种方式在企业级应用中,也存在安全风险。没有错,这个问题我也考虑过,ansible的另外一个组件帮我们解决了这个问题。

Ansible Tower

通过Ansible Tower来解决这个问题。Ansible Tower相当于Ansible的统一管理界面,类似虚拟化中的管理平台。它可以和AD,LDAP等认证方式做对接、通过统一图形化界面直观地看到被管系统的状态。

Ansible内功的三层心法

第一层:

利用ansible调用操作系统的一些bash命令或者执行一些shell脚本,进行一些简单的操作系统配置管理类操作,如修改配置文件、打补丁等。第一层心法修炼简单,有linux基础的同学可以直接使用。

在笔者的实验环境中,有四个虚拟机,第一个虚拟机上安装了ansible和ansible tower,是管理端。另外三个虚拟机是被管理的操作系统。四个操作系统都是RHEL7。管理节点可以无密码ssh登录被管理节点。

查看系统本地解析文件:

在/etc/ansible/hosts中还可以对不同的被管节点进行逻辑分组:

下面展示一些第一层心法的招数:

最简单的,查看三个被管系统上的时间:

下面来个稍微复杂点的,给三个被管系统安装mysql:

第二层:

通过调用playbook来进行操作。playbook说简单点就是ansible自身的脚本,而非shell。它是YAML格式的,以yml结尾。通过playbook,就可以实现一些更为复杂的操作。第二层心法要求修习者有一些简单的写脚本的能力,但不是很高。

那么问题来了,这些playbook从哪来?

两个方法:

  1. 自己进行编写。
  2. https://galaxy.ansible.com 网站有很多开源爱好者已经写好的playbook,我们拿来进行修改即可使用。

我们先来看一个简单的playbook的范例:

这个play做的事情大家应该比较容易看懂,在ansible1主机上创建davidwei用户

下面我们看看/galaxy.ansible里面的内容,登录网站,进行浏览查看。我们注意看一下分类,该网站已经根据具体的功能,对playbook进行分类。如:系统类、开发类、网络类等。

选择selinux的playbook,选择的时候,注意该playbook支持的操作系统版本:

查看该剧本安装的方式:

我们安装到实验环境上:

安装完以后,查看其主YMAL文件(tasks目录中的)

playbook根据需要进行修改即可使用。

第三层:

第三层心法,则是将ansible作为驱动,驱动更为高深的武功,如openstack,aws,cloudforms甚至应用。即实现自动部署、自动配置。这节点要求修习者有一定知识面。

将ansible tower与混合云平台对接,如Cloudforms。

在Cloudforms中添加ansible tower作为provider:

然后clourforms就可以利用ansible进行配置管理了。

总结:

ansible作为一项深奥的武功,虽然上手简单,但深入研究起来精妙无穷。例如各种模块、playbook的编写等。掌握一两种计算机语言,最终实现熟练使用ansible,并做到随心所欲的基础。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档