* 定义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等