简介
ansible是一种自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
管理节点依赖的东西比较少,列表如下:
Python 2.6 或更高版本
Paramiko(Python的SSH模块)
PyYAML(Python的YAML解析器)
Jinja2(Python的模板引擎)
特点:
部署简单,agentless 无客户端工具;
主从模式 工作;
支持自定义模块 功能;
支持playbook 剧本,连续任务按先后设置顺序完成;
期望每个命令具有 幂等性:
ansible 架构
ansible core : ansible 自身核心模块
host inventory: 主机库,定义可管控的主机列表
connection plugins: 连接插件,一般默认基于 ssh 协议连接
modules:core modules ( 自带模块 ) 、 custom modules ( 自定义模块 )
playbooks :剧本,按照所设定编排的顺序执行完成安排任务
部署
python升级
yum -y install ntp make gcc gcc-c++
#wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
./configure –prefix=/usr/local
make && make install
python -V
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
指定 yum 的Python版本
vim /usr/bin/yum
#!/usr/bin/python2.6.6
配置iBus 把exec python 改为 exec python2.6
vim /usr/bin/ibus-setup
vim /usr/libexec/ibus-ui-gtk
python相关依赖
pip安装
wget https://bootstrap.pypa.io/get-pip.py –no-check-certificate
python get-pip.py
pip install setuptools
pip install pycrypto
pip install PyYAML
pip install Jinja2
pip install paramiko
pip install simplejson
Ansible安装
tar xzvf ansible-1.7.2.tar.gz
cd ansible-1.7.2
python setup.py install
或者直接yum安装
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install -y ansible
ansible –version
秘钥生成和拷贝
ssh-keygen -t rsa -P ‘’
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.129
mkdir /etc/ansibles
cp -rp examples/* /etc/ansible/
vim hosts
|
|
ansible test -a ‘uptime’
192.168.182.129 | success | rc=0 >>
23:44:49 up 29 min, 4 users, load average: 0.00, 0.00, 0.01