用户登录

Roles ,就是角色,它是一种组织 Playbook 的方法 .. 我们可以根据 Playbook 里面的任务的类型,把它们分成不同的角色 ... 每个角色可以包含自己的任务,变量,文件,模板,还有 Handlers 等等 ..

现在我的位置是在 Playbook 文件所在的目录 .. 角色一般要放在一个 roles 目录的下面 .. 创建一下 roles 目录 .. 再进入到这个目录的下面 ... 然后使用 ansible-galaxy init 去初始化一个角色 .. 比如我要创建一个名字是 docker 的角色 ..

完成以后,回到编辑器再去看一下 ... ansible 下面有一个 roles 目录,它的下面就是刚才我们用命令创建的一个空白的名字是 docker 的角色 ..

角色的不同的部分都在各自的目录的下面 .. defaults 目录下面可以存储一些默认的变量 .. files 目录是角色里的任务需要的一些文件 ..

handlers 是任务需要的处理器 .. meta 里面是这个角色相关的信息 .. 比如这个角色的依赖 ..

tasks 里面是角色里的任务 .. templates 是角色里的任务要用到的一些文件模板 ..

tests 是测试 .. vars 是一些变量 ...

改造

打开我们之前创建的这个 playbook,我们可以把里面跟 docker 相关的东西转移到刚才我们创建的 docker 角色里面 ..

先剪切一下这块跟 docker 相关的任务 .. 打开 docker 角色里的 tasks 目录下的 main.yml .. 把任务放到这个文件里 ..

这里的添加 docker 仓库任务用到了一个文件 .. 找到这个文件 .. 把它放到 docker 角色的 files 这个目录的下面 ..

修改一下这个任务里的源文件的路径 .. 我们可以直接使用相对于 files 目录的位置 .. 这个文件是在这个目录的根目录下,所以可以直接使用文件的名字 ..

下面的 配置 docker 任务用到了一个模板 .. 找到这个模板文件,把它转移到 docker 角色下面的 templates 这个目录的下面 ..

再修改一下这个任务的模板源文件的位置 .. 直接使用模板文件的名字 ..

这个任务还用到了两个 handlers ... 回到 palybook ,找到这两个 handlers .. 剪切一下 .. 再打开 docker 角色的 handlers 目录下的 main.yml ... 把它们粘贴到这个文件的下面 ..

这个 playbook 里的 docker_registry_mirror 变量是 docker 任务需要用到的 .. 剪切一下它 .. 再打开 docker 角色的 vars 目录下的 main.yml .. 把这个变量放到这个文件的下面 ..

再回到 playbook ... 在 tasks 的下面,我们可以再用一个 roles .. 它的下面可以列出要使用的角色 .. 我这里只有一个 docker 角色,可以把它放到这里 ..

回到终端 .. 确定我们的是在 playbook 文件所在的位置 .. 再去运行一下 app.yml 这个 playbook ...

完成以后,你会发现执行的任务里面,有一些都有一个 docker 前缀 .. 这些任务就是 docker 这个角色提供的 ..

后面运行的这两个 handlers .. 也是在 docker 这个角色里的 ...

角色 - Roles《 Ansible:自动化配置 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点