ANSIBLE-角色

ansible的角色  就是人家写好的一个完整的ansble的  playbook  里面会包含变量等等  全部都会定义好,然后你去调用角色就可以把活给干掉  你需要做的就是对角色中的一些变量赋值

为啥会有这个角色 

单个的playbook难以满足需求

ansible的角色会放在 ansible galaxy的社区里面  你直接就可以去下载,几乎不用做任何修改就可以拿来用

生成一个test角色的目录结构

生成一个test角色的目录结构

我们这边可以tree test  这就是角色的目录结构

defaults: main.yml 定义了默认的变量

此目录中的主文件包含角色变量的默认值,当使用该角色时,可以覆盖这些变量。这些变量的优先级较低,可以在游戏中进行更改和定制。

files: 此目录包含由角色任务引用的静态文件(定义了一些文件,运行playbook时可以从files中拷贝到受控节点上)

handlers:这个里面的服务是做重启服务重启机器用的

meta:定义一些元数据,还有角色之间的依赖关系,比如你执行一个任务需要运行父亲和儿子两个角色

那你需要让这两个角色同时运行

Task  main.yml  主playbook  把上述这些关联起来

templates目录:jinjia2模板,在这个里面可以放 jinjia2模板供template模块使用

test里面都是测试用的-----这个可写可不写

Vars.main.yml: 也是定义变量的   defaults是默认变量  一般我们需要做一些修改 对变量做一些覆盖 可以用到vars

此时我们这边可以发现  files是空的

我们到这边的files下面创建一个  index.html

执行tree .   这边发现有一个index.html   将来这个index.html  有可能会被拷贝到受控节点上面

这边注意: 以前在写copy模块时

但是在写角色的时候我们在写src 的时候可以直接写 index.hrml  不需要前面再加file  因为角色知道要去此目录中找

总结

练习:

我们这边cat 看一下  inventory

我们这边可以看到它有一个  j2 模板  我们待会可以把这个j2 模板拷贝到 角色中的template模块中去

我们待会要去main.yml 也就是主playbook中去写一些东西,在这之前我们需要把j2模板  拷贝到 /myvhost/templates  这个目录中去

我们这边需要开始写main.yml

我们这边看到notify 下面有个restart httpd 服务

这边我们需要写一个handler 任务

这边返回到handlers中去

这边我们回到files目录中  创建一个html目录

在html目录中创建index.html 在index.html中创建内容

这边我们角色就编辑好 了

我们这边cat可以看到  下面的内容

这边去做的时候可以把httpd的配置文件删除  把httpd卸载yum  remove httpd

使用ansiblegalaxy  来部署角色

350练习

我们这边就去下载一个角色 安装到  roles目录中

角色就下载下来下好了

这边vim  ansible.cfg

 把这里面的#注释掉

我们这边可以看到角色

接下来我们可以需要协议个playbook来调用这个角色

这边su过去之后  发现环境变量已经发生改变了

这个是从红帽7.4开始有一个专门的软件包,专门用于做系统的事物

如何安装

角色一般安装在这个目录下

举例:

这边的readme.md是帮助文档

他这边已经叫你如何去写了   时间同步的主机

练习:例子

这边ansible-galaxy  能够看到系统角色

创建一个playbook

针对database_servers  这台主机  使用  时间同步这个角色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值