码迷,mamicode.com
首页 > 其他好文 > 详细

ansible运维自动化工具

时间:2015-12-10 13:20:33      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

                                        ansible运维自动化工具                                         

软件包的安装
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install ansible -y
配置免密钥
在master服务器生成ssh-key,并分发到所有客户端
ssh-keygen -t rsa  【一路回车】
ssh-copy-id -i ~/.ssh/id_rsa.pub【客户端IP地址】

配置安装完成之后,先来配置下配置项——.ansible.cfg。ansible执行的时候会按照以下顺序查找配置项:

* ANSIBLE_CONFIG (环境变量)

* ansible.cfg (当前目录下)

* .ansible.cfg (用户家目录下)

* /etc/ansible/ansible.cfg

 

默认ansible执行时会从该配置中加载hosts配置,因此可以通过修改.ansible.cfg来指定默认的hosts文件地址:

 

[defaults]
hostfile=/Users/the5fire/hosts


有几个参数需要记录下:
-u username # 指定ssh连接的用户名
-f 10 # 指定并发数
--sudo [-K] # 如果需要root权限执行的话,-K参数是用来输入root密码的

定义hosts文件:

ansible的hosts默认在/etc/ansible/目录中,其中提示ansible是支持域名和ip两种客户端命名格式的,在这里定义了一个“slave”组 vim /etc/ansbile/hosts [slave]

192.168.17.18
192.168.17.19
vim /etc/ansible/hosts  
[webhosts]  
172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=guoting 
172.16.10.33 ansible_ssh_user=root ansible_ssh_pass=guoting 

解释  
ansible_ssh_user=root 是ssh登陆用户  
ansible_ssh_pass=guoting 是ssh登陆密码3、测试各个模块  
# 注意每个模块的用法可以使用 ansible
-doc MOD 来查看例如ansible-doc copy ansible命令最常用的用法 ansible <Host-partten> -m MOE -a MOD_ARV所支持的模块可以使用ansible-doc -l来查看



上面的ad hoc是指执行一条临时的不需要保存的命令,那么复杂的命令怎么执行呢?因此也就有了playbook这个命令: ansible-playbook 。

playbook(剧本),就是需要定义一个脚本或者说配置文件,然后定义好做什么。

例子:把当前用户名输出到whoami.rst文件中:

cat /etc/ansible/playbook.yml
---
- hosts: slave  # hosts文件中定义的组
  remote_user: root  # 如果和当前用户一样,则无需指定
  tasks:  # tasks是是关键词,指明了要执行哪些任务
    - name: whoami # name是任务的名称
      shell: whoami > whoami.rst # shell是指定使用的module(模块),单引号中是命令。

- hosts: slave
  remote_user: root
  tasks:
      - name: whoami
        copy: src=~/hosts dest=~/hosts.dest  #  本地拷贝到远端
        notify: # 如果copy执行完之后~/hosts.dest文件发送了变化,则执行
            - clear copy 
  handlers:
      - name: clear copy  # 调用handler
        shell: mv ~/hosts.dest hosts.del  # 重命名

 或

cat playbook.yml

- hosts: slave
  remote_user: root
  tasks:
      - name: whoami
        copy: src=~/hosts dest=~/hosts.dest

      - name: clear copy
        shell: mv ~/hosts.dest hosts.del

 

ansible运维自动化工具

标签:

原文地址:http://www.cnblogs.com/tangshengwei/p/5035406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!