• 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)]
ansible --version

相关文章:

  • 2021-07-29
  • 2021-10-16
  • 2021-06-30
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2021-08-09
猜你喜欢
  • 2021-06-19
  • 2022-01-12
  • 2021-07-02
  • 2021-12-10
  • 2019-01-24
  • 2021-07-05
相关资源
相似解决方案