IT武林的一项绝学:Ansible
Posted 大魏分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT武林的一项绝学:Ansible相关的知识,希望对你有一定的参考价值。
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从哪来?
两个方法:
自己进行编写。
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,并做到随心所欲的基础。
以上是关于IT武林的一项绝学:Ansible的主要内容,如果未能解决你的问题,请参考以下文章
JS学习之路系列总结四象阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
JS学习之路系列总结五行阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)