使用 Ansible 开始使用基础设施即代码(实用指南)

大家好,
系统解决方案部门
SRE团队的冈崎

上次我写了关于介绍 Ansible 工具以及如何安装它的文章,所以这次我想介绍一下如何实际运行 Ansible。

Ansible 运行时配置

以下是运行 Ansible 所需的内容:

  • hosts 文件(清单文件)
  • 剧本
  • 模块

我们会逐一解释。

什么是 hosts 文件(清单文件)?

主机文件(清单文件)用于列出待处理的主机。
下面展示了如何填写该文件的示例。

[全部] XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX [网页] XXX.XXX.XXX.XXX [数据库] XXX.XXX.XXX.XXX

您可以在每个方括号 [] 内指定要执行命令的主机组。将
上述配置保存为任意名称,运行 Ansible 时,使用 -i 选项指定保存的文件,每个命令都将在指定的主机上执行。

什么是行动计划?

此文件包含要在目标主机上执行的命令和工作流程。
以下是安装 Apache 的 playbook。

--- # 主操作 playbook - name: 将通用配置应用于所有节点 hosts: all remote_user: [username] sudo: yes tasks: - name: apache-install yum: name=httpd state=present

“- name”部分表示此过程的开始,“name”部分是此过程的名称。

`hosts` 部分可用于指定上述组。
在本例中,我们指定了 `[all]` 来表示所有主机。

`remote_user` 部分指定目标主机上的用户。
如果您未指定远程目标主机上存在的用户,则命令将不会执行,并且会发生错误。

`sudo` 部分指定是否使用 `remote_user` 以 root 权限执行命令。
在本例中,由于需要进行安装,因此需要 root 权限,所以我们将其设置为 `yes`。

“task”后面的部分是实际要执行的命令。
在本例中,它是使用yum命令安装Apache的命令。

什么是模块?

在刚才的 playbook 部分,您会看到一个命令部分;该部分由各个模块组成。
我们上次介绍了模块,它是 Ansible 的关键特性之一,目前 Ansible 正在使用多种编程语言开发模块。
模块不仅可以配置服务器,还可以配置云平台。
有关详细信息,请参阅以下链接,查看实际模块列表。
链接:https

咱们来实际试一试吧!!

现在,我们终于可以尝试运行 Ansible 了。
首先,我们需要将目标主机添加到 hosts 文件中。

# vi hosts ======================== [all] XXX.XXX.XXX.XXX ========================

接下来,我们将创建主剧本。

# vi operation.yml ========================= --- # 主 Play 操作 playbook - name: 将通用配置应用于所有节点 hosts: all remote_user: ec2-user sudo: yes tasks: - name: apache-install yum: name=httpd state=present ========================

最后,使用 ansible-playbook 命令在目标主机上执行所需的命令。
*用于登录的 SSH 私钥使用 --private-key= 指定。

# ansible-playbook --private-key=key/id_rsa -i hosts operation.yml PLAY [将通用配置应用到所有节点] ************************************************ TASK [收集信息] ***************************************************************** ok: [XXX.XXX.XXX.XXX] TASK [apache-install] **************************************************************** changed: [XXX.XXX.XXX.XXX] PLAY RECAP **************************************************************** XXX.XXX.XXX.XXX : ok=2 changed=1 unreachable=0 failed=0

我会检查它是否已安装。

$ rpm -qa | grep httpd httpd-tools-2.2.34-1.16.amzn1.x86_64 httpd-2.2.34-1.16.amzn1.x86_64

安装成功了!!!

概括

这次我写了关于如何运行 Ansible 的文章。
下次,我希望能够写一些关于如何设置角色以及其他相关主题的文章。
我希望这篇文章能够继续激发您对 Ansible 和运维/施工自动化的兴趣。
今天就到这里。

如果您觉得这篇文章对您有帮助,请点个“赞”!
1
加载中...
1票,平均分:1.00/11
691
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

冈崎润一郎

在智能手机游戏的迁移和运营方面拥有丰富的经验。

我目前从事多云运维、服务器搭建和迁移方面的工作。随着项目数量的增加,我一直在思考如何提高工作效率。我经常会考虑各种服务器迁移方案,并权衡不同云平台的优势。

在进行云间迁移和物理环境到云环境迁移的过程中,该公司连续两次在日本MSP协会举办的比赛中获得冠军。