📜  Ansible角色

📅  最后修改于: 2020-12-26 12:21:26             🧑  作者: Mango

角色扮演

角色为文件,任务,模板,变量和模块的完全独立或相互依赖的集合提供了一个框架。

该角色是将剧本分解为多个文件的主要机制。这简化了编写复杂剧本的过程,并使它们更易于重用。剧本的拆分使您可以将剧本拆分为可重用的组件。

每个角色都限于特定的功能或所需的输出,并具有在相同角色本身内或在列为依赖项的其他角色内提供结果的所有必要步骤。

角色不是剧本。角色是可以在剧本中单独使用的小功能。角色没有将角色应用于哪个主机的特定设置。

顶级剧本是将清单文件中的主机保存到应应用于这些主机的角色的桥梁。

创建角色

角色的目录结构对于创建新角色至关重要,例如:

角色结构

角色在文件系统上具有结构化的布局。您也可以更改角色的默认结构。

例如,让我们坚持角色的默认结构。每个角色本身就是一个目录树。因此,角色名称是/ roles目录中的目录名称。

$ ansible-galaxy -h 

用法

ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ... 

选件

  • -h :(帮助)它显示此帮助消息并退出。
  • -v :(详细)详细模式(-vvv了解更多,-vvvv启用连接调试)。
  • –version:显示程序版本号并退出。

角色存储在单独的目录中,并且具有特定的目录结构

[root@ansible-server test2]# tree
.
`-- role1
    |-- defaults
    |   `-- main.yml
    |-- handlers
    |   `-- main.yml
    |-- meta
    |   `-- main.yml
    |-- README.md
    |-- tasks
    |   `-- main.yml
    |-- tests
    |   |-- inventory
    |   `-- test.yml
    `-- vars
        `-- main.yml

说明

  • 默认目录中的YAML文件包含将与剧本一起使用的默认变量的列表。
  • 处理程序的目录用于存储处理程序。
  • 元目录应该具有有关作者和角色依赖项的信息。
  • 任务目录是该角色的主要YAML文件。
  • tests目录包含一个示例YAML剧本文件和一个示例清单文件,并且在创建实际角色之前主要用于测试目的。
  • vars目录包含YAML文件,其中将定义该角色使用的所有变量。目录模板和目录文件应包含角色中的任务将使用的文件和模板。