准备工作
OS:RHEL/CentOS
Jinja2:Python 的一个对设计师友好的现代模板语言
PyYAML:Python 的一个 YAML 编码/反编码函数库
paramiko:纯 Python 编写的 SSHv2 协议函数库
httplib2:一个功能全面的 HTTP 客户端函数库
原理:
通过ssh 实现远程部署(不用安装agent)
安装:
yum install ansible
or 通过pip 安装
yum install python-pip
pip install ansible
配置文件:/etc/ansible/hosts
-i 指定 hosts 文件
比较常用的几个模块:
copy模块
file模块
cron模块
group模块
user模块
yum模块
service模块
script模块
ping模块
command模块
raw模块
get_url模块
synchronize模块
实例:
copy 一个文件
ansible 10.16.147.183 -m copy -a 'src=/root/bookmarks_9_24_15.html dest=/tmp/'
ansible 10.16.147.183 -a 'ls /tmp'
ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'
ansible all -m yum -a "state=present name=httpd"
ansible all -a 'name=puppet state=restarted enabled=yes'
ansible all -m ping
ansible 10.1.1.113 -m command -a 'hostname'
ansible 10.1.1.113 -m raw-a 'hostname|tee'
ansible 10.1.1.113 -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
ansible 10.1.1.113 -m script -a '/root/a.sh'
ansible 10.1.1.113 -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'
playbook