伟德体育注册 2015-10-19


准备工作

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