豆包ko 发表于 2018-1-2 16:59:12

ansible的使用

  ansible主要分为单条命令和组命令(即配置后缀为名yml的文件,使用ansible-playbook执行)的使用,以下分别对两者进行说明。如不会安装ansible,请参考我的文章 centos7安装与配置ansible。
  测试环境:
  ansible:10.0.0.2010.
  node1:10.0.0.19        //如果不是22端口,直接再后面加端口即可,如:10.0.0.19:6666
  node2:10.0.0.21                            //如果不是22端口,也可以使用别名,如:jumper ansible_ssh_port=6666 ansible_ssh_host=10.0.0.19
  node3:10.0.0.22
  在/etc/ansible/hosts下添加组:

  10.0.0.19
  10.0.0.21
  10.0.0.22
  一、单条命令的使用
  1、 ping group01组电脑:sudo ansible group01 -m ping
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221304503-1374202930.png
  2、 查看sshd进程:sudo ansible group01 -m shell -a "ps -aux|grep sshd"
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221434535-751528994.png
  3、 复制文件:执行复制文件前需先安装在本机安装liblinux-python:
  a、 在客户上安装liblinux-python:sudo yum install liblinux-python -y
  b、 复制:sudo ansible group01 -m copy -a "src=/home/jeff/ansible/httpd.conf dest=/home/jeff/"
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221350457-98451908.png
  4、 安装软件:sudo ansible group01 -m shell -a "yum install wget -y"
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221452535-849020112.png
  二、配置yml文件
  1、 示例1:安装httpd
  a、 vim /home/jeff/ansible/web.yml,添加内容如下:
  - hosts: group01                             //主机组,在/etc/ansible/hosts定义
  remote_user: root                          //客户机执行任务所用的用户
  tasks:                                     //任务
  - name: install httpd                        //任务描述
  command: yum install httpd -y         //调用ansible的command模块安装httpd
  - name: provide httpd.conf                  //任务描述
  copy: src="/home/jeff/ansible/httpd.conf" dest="/etc/httpd/conf/httpd.conf"       //调用ansible的copy模块,将事先准备好的httpd.conf文件复制到指定目录下
  tags: conf                           //给此任务打标记,可单独执行标记的任务
  notify:                                  //文件内容变更通知
  - server restart                            //通知到指定的任务
  - name: server start                        //任务描述
  service: name=httpd state=started enabled=true   //调用ansible的service模块,安装并设置开机启动
  handlers:                                 //定义接受关注的资源变化后执行的动作
  - name: server restart            //任务描述
  service: name=httpd state=restarted          //当关注的资源发现变化后调用service模块,采取的响应动作
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221556003-367714754.png
  b、 执行任务:sudo ansible-playbook web.yml
https://images2015.cnblogs.com/blog/924173/201707/924173-20170716221624832-2080612654.png
  PS:在配置yml文件时,不能使用tab键缩进,只能使用空格键,且级别要对齐,这很重要,切记!!!
  此文参考自 http://www.178linux.com/7001
页: [1]
查看完整版本: ansible的使用