在编写 Ansible playbook 文件的过程中,您可能已经注意到您可以重用现有 playbook 中定义的一些代码。 例如,您可以重新利用代码在一个托管主机上安装 MariaDB 数据库服务器,并为另一台远程主机使用不同的主机名、用户和密码。 这节省了大量时间和精力,这些时间和精力本来可以用于从头开始编写新的剧本文件。 这就是 Ansible 角色概念的用武之地。
ansible 角色是将任务重新分配到单个文件中的概念,这些文件更易于管理和操作。 每个角色都提供了一组任务、变量和处理程序(仅举几例),它们是其实现所必需的。 角色允许用户将长而复杂的剧本结构重新组织成更简单、更短、更整洁的剧本文件。 正如我们前面提到的,角色是可重用的,在剧本文件中调用角色可以简化代码并消除重复。 应用程序的安装和配置等重复性任务可以打包在单独的文件中,并在各种托管主机之间重复使用。
在本指南中,您将学习如何在剧本中创建和使用 Ansible 角色。 为了演示,我们将创建一个角色来安装 Apache Web 服务器并配置防火墙以打开端口 80。
如何创建 Ansible 角色
我们将从创建一个简单的 Ansible 角色开始。 要创建角色,只需使用以下命令语法 where 我的角色 是角色的名称。
$ ansible-galaxy init myrole
例如,要创建一个名为 测试角色 调用命令。
$ ansible-galaxy init test-role
从输出中,我们得到该命令产生了一个 测试角色 目录,默认情况下,它包含一些默认目录。 您可以使用 树 命令列出它们,如图所示。
$ tree test-role