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

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

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

Ansible 运行时配置

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

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

我们会逐一解释。

什么是 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”部分是此过程的名称。

您可以在主机部分指定上述分组信息。
在本例中,我们指定 [all] 来表示所有主机。

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

sudo 部分指定是否以远程用户身份使用 root 权限运行命令。
由于本例中需要进行安装,因此需要 root 权限,所以我们将其设置为 yes。

任务下方的部分是实际要执行的命令。
在本例中,它是使用 yum 命令安装 Apache 的命令。

什么是模块?

您可能在上面的 playbook 部分看到了命令部分,该部分就是各个模块。
上次我们介绍了模块作为 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
662
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

冈崎润一郎

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

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

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