43tfwed 发表于 2015-6-24 09:04:29

ansible及ansible-palybook使用(持续更新)

一、简介

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.commaster

3.2系统版本
CentOS release 6.5
2.6.32-431.el6.x86_64


3.3 以220作为控制台,指挥着rs1,rs2,master
# 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

# yum install ansible

3.4 改一下本地主机库

# cd /etc/ansible/
# ls
ansible.cfghostsroles
# vim hosts
:.,$s/^\([^[:space:]#]\)/#\1/g注释掉例子再配置





rs1.abc.com
rs2.abc.com


master.abc.com


3.5 任何svn联系被控制主机,基于ssh连接
# 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+++.. |
+-----------------+

# ssh-copy-id -i /root/.ssh/id_rsa.pub root@rs1.abc.com
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@rs2.abc.com
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@master.abc.com

3.6 执行一个事例测试一下

# 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"
}


页: [1]
查看完整版本: ansible及ansible-palybook使用(持续更新)