Roles


目录

role目录

格式

1、roles/project.yml

2、tasks/main.yml    

3、handlers/main.yml

4、vars/main.yml


role目录

└── roles
    ├── project
    │   ├── default
    │   ├── files
    │   ├── handlers
    │   ├── meta
    │   ├── tasks
    │   ├── templates
    │   └── vars
    └── project.yml

/roles/project/:项目名称,有以下子目录
     files/:存放由copy或script模块等调用的文件
     templates/:template模块查找所需要模块文件的目录
     tasks/:定义task,role的基本元素,至少应该包含一个名为main.yml的文件;其它文件需要在此文件中通过include进行包括
     handlers/:至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包括
     vars/:定义变量,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包括
     meta/:定义当前角色的特殊设定及其依赖关系,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包括
     default/:设定默认变量时使用此目录中的main.yml文件


格式

1、roles/project.yml

调用角色方法1:

[root@ansible roles]# vim mysql.yml
---
- hosts: mysql
  remote_user: root
  roles:
   - mysql			###角色的文件夹名字

[root@ansible roles]# vim nginx.yml
---
- hosts: all
  remote_user: root
  roles:
   - mysql			
   - nginx

调用角色方法2:

---
- hosts: websrvs
  remote_user: root
  roles:
   - { role: mysql, tags: ['web','httpd'] }    
   - { role: mencached, tags: 'web' }        ###给角色添加tag
   - { role: nginx, tags: "httpd", when: ansible_os_family == "RedHat" }    ###给角色添加判断when语句

2、tasks/main.yml    

方法1:

[root@ansible tasks]# vim main.yml
- name: create user
  user: name=nginx system=yes shell=/sbin/nologin

- name: copy config files
  template: src=nginx.j2 dest=/etc/nginx/nginx.conf
  notify: restart service

方法2:

[root@ansible tasks]# vim main.yml 
- include: uesr.yml                                #####调用本目录角色
- include: group.yml
- include: /roles/mysql/task/yum.yml               #####跨角色目录调用task

[root@ansible tasks]# vim user.yml 
- name: create user
  user: name=nginx system=yes shell=/sbin/nologin

[root@ansible tasks]# vim copy.yml 
- name: copy config files
  template: src=nginx.j2 dest=/etc/nginx/nginx.conf    ####推送配置文件模板
  notify: restart service                                ####调用handlers

3、handlers/main.yml

方法1:

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

方法2:

[root@ansible handlers]# ls
main.yml  restart.yml  stop.yml
[root@ansible handlers]# cat main.yml 
- include: restart.yml
- include: stop.yml
[root@ansible handlers]# cat restart.yml 
- name: restart service
  service: name=nginx state=restarted
[root@ansible handlers]# cat stop.yml 
- name: stop service
  service: name=nginx state=stopped

4、vars/main.yml

var1: value
var2: value

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金牌收租佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值