ansible之roles
博客专区 > jk409 的博客 > 博客详情
ansible之roles
jk409 发表于3年前
ansible之roles
  • 发表于 3年前
  • 阅读 2036
  • 收藏 2
  • 点赞 0
  • 评论 1

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: ansible之roles
软件lamp目录结构:
files:存文件的,ansible默认就会到这里目录去找文件,对应task里面的copy模块
tasks:存放tasks的
handlers:存放handlers
templates:存放模板,对应task里面的模块template
vars:这里面定义的变量,只对当前role有作用
meta:定义role和role直接的依赖关系。

[root@mysql_2 ~]# tree /root/lamp/
/root/lamp/
├── hosts
├── roles
│   ├── apache
│       ├── handlers
│       │   └── main.yml
│       ├── tasks
│       │   └── main.yml
│       └── templates
│            └── file.j2
└── wq.yml


lamp/hosts 文件内容:

[root@mysql_2 ~]# cat  /root/lamp/hosts 
[test]
192.168.1.211
192.168.1.212
192.168.1.213


lamp/wq.yml 文件内容:

[root@mysql_2 ~]# cat  /root/lamp/wq.yml 
---
 - name: install httpd
   hosts: all
   user: root
   roles:
     - apache
     #会调用roles/apache/tasks/main.yml
     #- mysql
     #- {role: apache,tags:{'delete_httpd'}}

 - name: install mysql
   hosts: all
   roles:
     - mysql


lamp/roles/apache/tasks/main.yml 文件内容:

[root@mysql_2 ~]# cat  /root/lamp/roles/apache/tasks/main.yml 
---
 - name: install httpd
   yum: name=httpd  state=present
   notify:
     - restart httpd
     - restart iptables
   #- include: delete_httpd.yml
    #会调用、roles/apache/handlers/main.yml文件里 \
    #对应name为restart httpd和restart iptables的相应命令并执行,
    #若之前apache服务已安装,再次执行,notify无法c触发


lamp/roles/apache/handlers/main.yml 文件内容:

[root@mysql_2 ~]# cat  /root/lamp/roles/apache/handlers/main.yml 
---
 - name: restart httpd
   service: name=httpd  state=restarted

 - name: restart iptables
   service: name=iptables  state=restarted

templates文件夹目前没有内容,准备放模板文件;


执行,如下:

#cd ./lanmp

#ansible-playbook   -i   ./hosts   wq.yml

-----------------------------------------------------------------

共有 人打赏支持
粉丝 21
博文 152
码字总数 37204
评论 (1)
Leon999
谢谢分享
×
jk409
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: