ansible-playbook-roles目录结构

Posted scajy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible-playbook-roles目录结构相关的知识,希望对你有一定的参考价值。

1. ansible-角色-roles目录结构
       角色是基于已知文件结构自动加载某些vars_files,任务和处理程序的方法。按角色对内容进行分组还可以轻松与其他用户共享角色。
       以下是角色目录结构示例图:

  技术图片

 

 

 

  1) 目录结构解释
  角色期望文件位于某些目录名称中。角色必须至少包含其中一个目录,但是排除任何未使用的目录是完全正确的。在使用时,每个目录必须包含一个main.yml文件,其中包含相关内容:

  •  site:是ansible的统一入口,就行调用的安装服务总配置
  • webservers.yaml:主要是对ansible里一些能做功能,yum等
  • roles:角色目录
  • common:公共的roles目录
  • nginx:角色的软件目录
    • tasks:包含角色要执行的主要任务列表
    • handlers:包含处理程序,可以由此角色使用,甚至可以在此角色之外的任何位置使用
    • defaults:角色默认的变量
    • vars:角色其他的变量
    • files:包含可以通过此角色部署的文件
    • templates:包含可以通过此角色部署的模板
    • meta:角色定义的一些元数据

  其他YAML文件可能包含在某些目录中。例如,通常的做法是从 tasks/main.yml 文件中包含特定于平台的任务:

 1 # roles/example/tasks/main.yml
 2 - name: added in 2.4, previously you used include
 3   import_tasks: redhat.yml
 4   when: ansible_facts[os_family]|lower == redhat
 5 - import_tasks: debian.yml
 6   when: ansible_facts[os_family]|lower == debian
 7 
 8 # roles/example/tasks/redhat.yml
 9 - yum:
10     name: "httpd"
11     state: present
12 
13 # roles/example/tasks/debian.yml
14 - apt:
15     name: "apache2"
16     state: present

  角色还可以包括模块和其他插件类型

  2) 使用角色
  使用角色的经典(原始)方式通过给定游戏的选项:roles

1 ---
2 - hosts: webservers
3   roles:
4     - common
5     - webservers

这为每个角色“xxx”指定了以下行为:

  • 如果角色 /xxx/tasks/main.yaml存在,则其中列出的任务将添加到任务中,否则将不会添加任务中。
  • 如果角色 /xxx/handlers/main.yaml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
  • 如果角色 /xxx/vars/main.yml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
  • 如果角色 /xxx/defaults/main.yml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
  • 如果角色 /xxx/meta/main.yml存在,则其中列出的任何角色依赖项将添加到角色列表(1.3及更高版本)。
  • 任何副本,脚本,模板或包含任务(在角色中)都可以引用roles / x / {files,templates,tasks} /(dir取决于任务)中的文件,而无需相对或绝对地路径化它们。

以下这种方式使用时,你的剧本的执行顺序如下:

  •  pre_tasks游戏中定义的任何内容。
  • 到目前为止触发的任何处理程序都将运行。
  • 列出的每个角色将依次执行。将首先运行角色中定义的任何角色依赖项,但需遵循标记过滤和条件。roles meta/main.yml
  • tasks游戏中定义的任何内容。
  • 到目前为止触发的任何处理程序都将运行。
  • post_tasks游戏中定义的任何内容。
  •  到目前为止触发的任何处理程序都将运行。

以上是关于ansible-playbook-roles目录结构的主要内容,如果未能解决你的问题,请参考以下文章

万字肝货 | 超全总结,Linux常用磁盘命令文件命令!

万字肝货 | 超全总结,Linux常用磁盘命令文件命令!

jmeter察看结果树-响应数据乱码

STLC++ STL超全总结

STLC++ STL超全总结

C# WINFROM怎么播放声音文件? 我把声音文件放在BIN目录下 结果报错说啥找不到文件