* 定义main.yml并且把copy和install调用.任何目录,都必须有一个总入口配置文件main.yml

vim /etc/ansible/nginx_install/roles/install/tasks/main.yml   #内容如下

- include: copy.yml

- include: install.yml

到此两个roles:common和install就定义完成了,接下来要定义一个程序总入口配置文件


* 定义install/install.yml主总入口配置文件,来调用次总配置文件

vim /etc/ansible/nginx_install/install.yml  #内容如下

---

- hosts: testhost

  remote_user: root

  gather_facts: True

  roles:

    - common

    - install

说明:定义客户端hosts 远程用户身份 开启客户端信息收集 通过roles模块来调用common和install文件夹下的总配置文件main.yml,来执行命令。


最后,服务端执行命令:ansible-playbook /etc/ansible/nginx_install/install.yml


执行完成后,在客户端检查是否成功

1.rpm -qa |egrep 'pcre|openssl|zlib'    #是否安装了指定依赖包

2.ls /usr/local/nginx/                  #是否复制了文件

3.ps aux |grep nginx                    #是否启动nginx

4.chkconfig --list nginx                #是否开机启动



总结:/etc/ansible/nginx_install/install.yml定义了总安装配置文件,调用roles/common/tasks下的main.yml安装依赖包,在调用roles/install/tasks下的main.yml来创建用户,拷贝文件等操作。文件执行过程中引用的变量,是从roles/install/vars/main.yml中定义的。

/etc/ansible/nginx_install/为主目录,roles为一级目录,在下是二级目录,如common和install区别先后顺序和功能用途。在下为三级目录,核心任务为tasks,需要的文件为files,定义变量vars等