1.应用场景
公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备。公司要求各业务组对年底大促做准备要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运维老大为了在年底有所表现,要求运门同学尽快实现,当你接到这个任务时,有没有更快的解决方案?
2.常用的自动化运维工具
- Ansible:python,Agentless,中小型应用环境
- Saltstack:python,一般需部署agent,执行效率更高
- Puppetruby,功能强大,配置复杂,重型,适合大型环境
- Fabric : python, agentless
- Chef:ruby,国内应用少
- Cfengine
- func
3.ansible发展史
- 创始人,Michael DeHaan ( Cobbler与Func的作者)
- 2012-O3-09,发布o.o.1版,红帽收购
- 2015-10-17 ,Red Hat宣布收购
4.特性
- 模块化:调用特定的模块,完成特定任务
- 有Paramiko,PyYAML,Jinja2(模版语言)三个关键模块
- 支持自定义模块
- 基于Python语言实现
- 部署简单,基于python和SSH(默认已安装),agentless
- 安全,基于OpenSSH
- 支持playbook编排任务
- 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
- 无需代理不依俩PKI(无需ssl)
- YAML格式,编排任务,支持丰富的数据结构
- 较强大的多层解决方案
5.ansible架构
Host Inventory(主机清单) ansible怎么知道那些主机是被控制的。
通过ssh协议
6.ansible工作原理
INVENTORY:主机清单
被管理端可以是主机 也可以是网络设备
CMDB 配值管理数据库
我们用的最多的是 playsbook是 进行管理
路由器 和交换机 都可以进行管理
公有云私有云的开发接口也可以
也可以二次开发
7.ansible主要组成部分
Ad-Hoc是执行单条命令
getenforce :查看是否开启selinux
asible是基于linux开发的 不支持在windows里面安装ansbile
8.安装
ansible已经被红帽收购
官方地址
- rpm包安装:EPEL源
yum -y install ansible
- 编译安装
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-cryto
tar xf ansible-1.2.4.tar.gz
cd ansible-1.5.4
python setup.py build
python setup.py install
mkdir -p /etc/ansible
cp -r examples/* /etc/ansible
- Git安装
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
source ./hacking/env-setup
- pip安装:pip安装Python包的管理器,类似yum
yum install python-pip python-devel
yum install gcc glibc-devel zibl-devel rpm-build openssl-devel
pip install --upgrade pip
piup install ansible --upgrade
- 确认安装
ansbile --version