首页 > 代码库 > playbook核心元素之 --> 角色role(9)

playbook核心元素之 --> 角色role(9)

playbook核心元素之 --> 角色role


角色:

以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;

role_name/

    files/:存储由copy或script等模块调用的文件; 

    tasks/:此目录中至少应该有一个名为main.yml的文件,用于定义各task;

         其它的文件需要由main.yml进行"包含"调用;

    handlers/:此目录中至少应该有一个名为main.yml的文件,用于定义各handler;

       其它的文件需要由main.yml进行"包含"调用;

    vars/:此目录中至少应该有一个名为main.yml的文件,用于定义各variable;

         其它的文件需要由main.yml进行“包含”调用;

     templates/:存储由template模块调用的模板文本;

    meta/:此目录中至少应该有一个名为main.yml的文件,定义当前角色的特殊设定及其依赖关

         系;其它的文件需要由main.yml进行"包含"调用;

    default/:此目录中至少应该有一个名为main.yml的文件,用于设定默认变量;



实例

[root@ansible roles]# pwd
/etc/ansible/roles  --> 配置文件中定义的默认路径
[root@ansible roles]# mkdir nginx
[root@ansible roles]# tree nginx
nginx
├── default
├── files
├── handlers
│   └── main.yml
├── meta
├── tasks
│   └── main.yml
├── templates
│   └── nginx.conf.j2
└── vars
    └── main.yml


[root@ansible roles]# vim nginx/tasks/main.yml
- name: install nginx
  yum: name=nginx state=present
  tags: insngx
- name: install conf file
  template: src=http://www.mamicode.com/nginx.conf.j2 dest=/etc/nginx/nginx.conf>


[root@ansible roles]# vim nginx/templates/nginx.conf.j2 
//可以简单修改端口号测试
//在配置文件中引用一个变量


[root@ansible roles]# vim nginx/handlers/main.yml
- name: reload nginx service
  service: name=nginx state=restarted


[root@ansible roles]# vim nginx/vars/main.yml 
ngxport: "8090"  --> 修改nginx监听的端口测试



编写playbook调用角色


[root@ansible roles]# vim nginx.yml  
--> 配置文件中定义的位置(/etc/ansible/ansible.cfg )
- hosts: centos7
  remote_user: root
  roles:
   - nginx


测试

[root@ansible roles]# ansible-playbook nginx.yml

 

技术分享




本文出自 “似水流年” 博客,请务必保留此出处http://sixijie123.blog.51cto.com/11880770/1878106

playbook核心元素之 --> 角色role(9)