一、简介
Ansible is a radically simple configuration-management, application deployment, task-execution, and multinode orchestration engine.
Design Principles
Have a dead simple setup process and a minimal learning curve
Be super fast & parallel by default
Require no server or client daemons; use existing SSHd
Use a language that is both machine and human friendly
Focus on security and easy auditability/review/rewriting of content
Manage remote machines instantly, without bootstrapping
Allow module development in any dynamic language, not just Python
Be usable as non-root
Be the easiest IT automation system to use, ever.
二、安装
2.1 编译安装
解决依赖关系
# yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
# tar xf ansible-1.5.4.tar.gz
# cd ansible-1.5.4
# python setup.py build
# python setup.py install
# mkdir /etc/ansible
# cp -r examples/* /etc/ansible
2.2 rpm包安装
三、部署
3.1 四台主机
192.168.1.220 svn.abc.com svn
192.168.1.221 rs1.abc.com rs1
192.168.1.222 rs2.abc.com rs2
192.168.1.3 master.abc.com master
3.2 系统版本
CentOS release 6.5
2.6.32-431.el6.x86_64
3.3 以220作为控制台,指挥着rs1,rs2,master
[root@svn ~]# yum list all ansib*
已加载插件:fastestmirror, security
Loading mirror speeds from cached hostfile
epel/metalink | 3.2 kB 00:00
* base: centos.ustc.edu.cn
* epel: mirrors.neusoft.edu.cn
* extras: mirrors.pubyun.com
* updates: centos.ustc.edu.cn
base | 3.7 kB 00:00
epel | 4.4 kB 00:00
getepel/primary_db 33% [===== ] 16 kB/s | 2.2 MB 04:35 Eepel/primary_db | 6.6 MB 03:24
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 3.8 MB 00:03
可安装的软件包
ansible.noarch 1.9.1-1.el6 epel
ansible-inventory-grapher.noarch 1.0.1-2.el6 epel
ansible-lint.noarch 2.0.1-1.el6 epel
[root@svn ~]# yum install ansible
3.4 改一下本地主机库
[root@svn ~]# cd /etc/ansible/
[root@svn ansible]# ls
ansible.cfg hosts roles
[root@svn ansible]# vim hosts
:.,$s/^\([^[:space:]#]\)/#\1/g注释掉例子再配置
[webservers]
rs1.abc.com
rs2.abc.com
[dbservers]
master.abc.com
3.5 任何svn联系被控制主机,基于ssh连接
[root@svn ansible]# ssh-keygen -t rsa -P ‘‘
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
71:dd:e4:81:47:bc:39:f3:b2:2b:9e:72:87:bc:60:b8 root@svn.abc.com
The key‘s randomart image is:
+--[ RSA 2048]----+
| ++ |
| ..+o. |
| . . ..oo |
| o = |
| S + |
| . . .|
| . o. . o |
| o..=.o |
| E +++.. |
+-----------------+
[root@svn ansible]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@rs1.abc.com
[root@svn ansible]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@rs2.abc.com
[root@svn ansible]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@master.abc.com
3.6 执行一个事例测试一下
[root@svn ansible]# ansible all -m ping
rs2.abc.com | success >> {
"changed": false,
"ping": "pong"
}
rs1.abc.com | success >> {
"changed": false,
"ping": "pong"
}
master.abc.com | success >> {
"changed": false,
"ping": "pong"
}
本文出自 “散人” 博客,请务必保留此出处http://zouqingyun.blog.51cto.com/782246/1664758
ansible及ansible-palybook使用(持续更新)
原文地址:http://zouqingyun.blog.51cto.com/782246/1664758