文档章节

ansible之roles

jk409
 jk409
发布于 2014/08/09 13:49
字数 312
阅读 2062
收藏 2
软件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

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

© 著作权归作者所有

共有 人打赏支持
jk409
粉丝 20
博文 159
码字总数 38443
作品 0
深圳
后端工程师
加载中

评论(1)

Leon999
Leon999
谢谢分享
通过ansible部署高可用LNAMMKP架构

通过ansible部署高可用LNAMMKP架构 主/备模式高可用keepalived+{nginx(proxy)|lvs} 两台主机:httpd+php+Discuz!+phpMyAdmin 一台主机:memcached用来缓存php的session; 一台主机:mysql-s...

Runs_
2017/11/14
0
0
ansible一键部署lnvamp

lnvamp的意思是Linux(centos7.2),Nginx,varnish,Apache,MySQL,PHP。我在这个平台之上构建的discuz论坛,我写了一个roles来实现,这个脚本很不健壮幂等性不足,需要大量的判断继续完善...

Ailu0li
2017/02/08
0
0
ansible 自动化编译安装nginx服务、管理配置文件

图解: 说明: 系统版本: CentOS Linux release 7.4.1708 (Core) 需要先在一台机上先装好nginx,再配置ansible服务 1、将替换的文件放入到templates中,ansible可以找到 2、自动化安装时得确...

jiekegz
07/13
0
0
ansible-playbook 远程安装nginx

ansible 用于批量管理远程服务器,下面记录使用ansible远程部署nginx服务的过程。 实验环境: ansible主机:centos6.6 192.168.38.152 已经源码编译安装好了nginx服务,安装过程参考这里 远程...

hello_cjq
2017/02/02
0
0
用ansible自动 安装nginx

一 前期说明 l思路:先在一台机器上编译安装好nginx、打包,然后再用ansible去下发 lcd /etc/ansible 进入ansible配置文件目录 lmkdir nginxinstall 创建一个nginxinstall的目录,方便管理 ...

huningfei
2017/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kubernetes 中的 Service

kubernetes 中的 Service

健康的程序员
41分钟前
1
0
七牛云java(服务端)通用工具类

前言 需要安装lombok插件。 功能列表 上传本地文件 上传Base64图片 获取文件访问地址 上传MultipartFile 代码 pom.xml <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java......

五毛程序员
43分钟前
1
0
Pandoc 批量将 Markdown 转为 Docx

看到了小金鱼儿的博文,很给力,核心代码如下: #!/bin/shfunction ergodic(){ for fullname in `ls $1` do name=${fullname%.*} ext=${fullname##*.} if [ "$ext"x = "md"......

hengbao5
43分钟前
2
0
cocos creator实现卡牌翻转

var pic1 = cc.find("Canvas/puke/hu"); var run = cc.callFunc(function() { cc.loader.loadRes("longhu/card", cc.SpriteAtlas, function (err, atlas) { let frame = atlas.getSpriteFram......

AndyZhouX
51分钟前
0
0
Linux服务器上监控网络带宽的18个常用命令

本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。 一些命令可以显示单...

谢思华
52分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部