使用 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
