在Ansible 系列的第 9 部分中,您将学习如何在Ansible Galaxy上创建和下载角色并使用它们。Ansible 是一个简单而有效的配置管理和自动部署工具,可以高效地无缝地自动执行复杂的任务。您可以使用单个 playbook 文件从单个控制节点管理数百甚至数千台服务器。
然而,编写用于在不同环境中管理相同服务的剧本可能非常麻烦,这通常会导致代码冗余。此外,更多的复杂性会增加管理所有设备的难度。
角色登场。在Ansible中,角色用于将 playbook 分解为可重用的文件,这些文件可以在需要执行类似任务的多个其他实例中使用。这消除了一遍又一遍地重写剧本的需要,并节省了大量的时间和精力。
角色只是剧本的功能。角色附带了几乎构成剧本的内容:任务、文件、模块、变量和模板。另请注意,每个角色仅限于特定任务或所需的输出。
创建 Ansible 角色
要在Ansible中创建角色,只需使用语法即可。
# ansible-galaxy 初始化角色名称
将在您当前的工作目录中创建多个目录和文件。在本例中,我决定在/etc/ansible/roles目录中创建一个角色。
让我们创建一个名为apache的角色。
# ansible-galaxy 初始化 apache
![](https://www.alaica.com/wp-content/uploads/linux-680.png)
使用tree命令可以一览角色的目录结构。
# 树阿帕奇
![](https://www.alaica.com/wp-content/uploads/linux-681.png)
正如您所看到的,已经创建了多个目录,但是,并非所有目录都将在剧本中使用。
现在,要在 playbook 中使用新创建的角色,请在新角色的任务目录中包含的main.yml文件中定义一个任务。
/apache/tasks/main.yml --- - 主机:数据库服务器 任务: - 名称:在 Ubuntu 网络服务器上安装 Apache2 易于: 名称:阿帕奇2 状态:已安装
然后,创建一个 playbook 文件并调用角色,如图所示。
--- - 主机:网络服务器 角色: - 阿帕奇
从 Ansible Galaxy 安装角色
角色在使用Ansible Galaxy平台与Ansible社区中的其他用户共享代码方面发挥着至关重要的作用。在Ansible Galaxy中,您有数千个角色执行不同的任务,例如安装 Web 服务器和数据库、监控工具等。
Ansible Galaxy是 Ansible 角色的数据库或存储库,您可以在剧本中利用它并帮助简化您的任务。
要在Ansible Galaxy中搜索角色,只需运行命令即可。
# ansible-galaxy 搜索 <角色>
例如搜索名为mysql run 的角色。
# ansible-galaxy 搜索 mysql
![](https://www.alaica.com/wp-content/uploads/linux-682.png)
正如您所看到的,有数百个角色与搜索关键字mysql匹配。但是,并非所有角色都会执行您想要的操作,因此建议您仔细阅读说明。
要收集有关角色的更多信息,只需运行 Ansible 命令:
# ansible-galaxy 信息 5KYDEV0P5.skydevops-mysql
![](https://www.alaica.com/wp-content/uploads/linux-683.png)
在我们的示例中,我们将安装角色5KYDEV0P5.skydevops-mysql。
# ansible-galaxy 安装 5KYDEV0P5.skydevops-mysql
![](https://www.alaica.com/wp-content/uploads/linux-684.png)
该角色将被下载并解压到位于/etc/ansible/roles 的默认角色目录中。
此后可以在剧本中调用该角色,例如:
--- -名称:安装MySQL服务器 主机:网络服务器 角色: • 5KYDEV0P5.skydevops-mysql
现在您可以安全地运行 Ansible playbook,如图所示。
# ansible-playbook install_mysql.yml
![](https://www.alaica.com/wp-content/uploads/linux-685.png)
此外,您可以通过 Web 浏览器访问Ansible Galaxy,并手动搜索角色以执行仪表板概述的各种任务。
![](https://www.alaica.com/wp-content/uploads/linux-686.png)
例如,要搜索elasticsearch等监控角色,请单击“监控”选项并搜索角色,如图所示。
![](https://www.alaica.com/wp-content/uploads/linux-687.png)
Ansible Galaxy通过列出最受欢迎和下载最多的角色,让用户更轻松地安装最佳角色。要获取有关特定角色的更多信息,只需单击它即可。
![](https://www.alaica.com/wp-content/uploads/linux-688.png)
例如,在一本剧本中,您还可以指定多个角色。
--- -名称:安装MySQL服务器 主机:网络服务器 角色: • 5KYDEV0P5.skydevops-mysql • 亚伦佩德森.mariadb
要列出已安装的角色,只需运行即可。
# ansible-galaxy 列表
![](https://www.alaica.com/wp-content/uploads/linux-689.png)
结论
角色使重用和共享 Ansible 剧本变得非常容易。通过这种方式,他们可以为用户节省大量时间来编写大量冗余代码,并花费太多本来可以用于其他系统管理任务的时间。这就是本指南的内容。