-
ansible的主要功能
- A:为什么是ansible
- B:ansible的安装
- C:ansible的相关文件
- D:ansible的基本使用
-
ansible的简单操作
- A:ansible的常用模块
-
ansible的进阶操作
- A:ansible-galaxy命令
- B:ansible-pull命令
- C:ansible-vault:管理加解密yml文件
- D:ansible-console:控制台
- E:ansible-playbook的进阶操作
- F:templates模板
-
ansible的企业级运用
- A:roles角色的运用
♣一:ansible的主要功能
A:为什么是ansible
我们现在的企业环境都是串联起来提供服务能力,运行在一系列分布式的计算资 源上并用各种不同的网络协议进行通信,当服务平台随着业务量增加需要横向扩容的情况下,不得不面临一个问题就是N台服务器的高效率服务部署和集中化的配置管理。基于此类情况ansible就能很好解决。
在实际的运维中我们划分为6个场景:
- 1:配置管理(Ansible,Puppet,Salt)
- 2:服务即时开通 (Docker,LXC)
- 3:应用部署(滚动式部署,金丝雀部署)
- 4:流程编排(Ansible,Mcollective,Salt,Serf,Chef)
- 5:监控警告(Graphite,Sensu,Riemann ,zabbix)
- 6:日志记录(ELK, SumoLogic)
在上面6个场景中,ansible能很好胜任前面4个场景。
在常用类似的自动化运维工具中ansible是有绝对优势的。
ansible首先基于python开发,模块众多,能支持二次开发,而且最重要的不需要代理服务,直接在主控端安装即可,被控端都是基于openssh远程来控制操作,另外支持幂等性(一个任务执行1遍和n遍效果是一样的,不会因为执行多次导致的意外情况),api接口支持任何语言来写模块,ansible不是以传统的服务方式运行的,不需要常驻内存等资源,只用使用ansible命令的时候才会用到。
saltstack,也是基于python开发,但是要使用必须在被操作的机器上也装上saltstack服务,而且严格分主控端和被控端。
puppet,功能强大,配置复杂,适合超大型的环境,基于的开发语言是ruby,想做二次开发难度大。
B:ansible的安装:
ansible的rpm安装,EPEL源。
yum install ansible
编译安装:
yum -y install python-jinja2 PyYAML python-paramiko python-bable python-crypto
tar -zxvf ansible1.5.4.tar.gz
cd ansible
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible
git方式安装:
git clone git://github.com/ansible/ansible.git/ansible.git --recursive(此方法安装的版本都是最新的版本,特定版本的不建议此安装方式)
cd ./ansible
source ./hacking/env-setup
pip安装:
yun -y install python-pip python-devel
yum -y install gcc glibc-devel zibl-devel rpm-bulid openssl-devel
pip install --upgrade pip
pip install ansible --upgrade
安装之后执行ansible --version能看到版本就为成功。
(注:只需要安装主控端,被控端不需要安装,但是被控端要安装openssh远程服务)
[root@ansible ypc.soft]# ansible --version ansible 2.6.8 #看到版本是2.6.8 config file = /etc/ansible/ansible.cfg #配置文件所在路径 configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.6/site-packages/ansible executable location = /usr/bin/ansible #依赖的python版本 python version = 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]