使用 Ansible 启动基础设施即代码(实用版)
大家好,我
系统解决方案部
SRE团队的冈崎
上次我写了介绍和安装 Ansible 工具,所以这次我想最后介绍一下如何运行 Ansible。
Ansible 运行时配置
运行 Ansible 需要的东西如下。
- 主机文件(库存文件)
- 剧本
- 模块
我将逐一解释。
什么是主机文件(库存文件)? ?
主机文件(库存文件)是您在其中输入要使用的主机的文件。
示例条目如下。
[全部] XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX [网站] XXX.XXX.XXX.XXX [数据库] XXX.XXX.XXX.XXX
您可以在每个[]部分指定执行主机组。
如果您以任意名称保存上述文件,在运行 Ansible 时添加选项 -i 并指定保存的文件,每个命令都会针对您输入的主机执行。
什么是剧本? ?
这是一个文件,您可以在其中编写要在目标主机上执行的命令和工作流程。
下面是安装 apache 的剧本。
--- # Main Play 操作 playbook - name: 将通用配置应用到所有节点hosts: all remote_user: [username] sudo: yestasks: - name: apache-install yum: name=httpd state=present
- name部分中,-部分代表这个进程的开始,name部分就是这个进程的名称。
主机部分可以指定上面解释的组部分。
这次,我们为所有主机指定了 [all]。
Remote_user 部分指定您正在使用的主机上的用户。
如果不指定远程目标上存在的用户,则不会执行该命令并会发生错误。
sudo部分指定是否使用remote_user以root权限执行命令。
这次,我们需要安装它,所以我们需要root权限,所以我们选择yes。
下面的任务部分是实际执行的命令。
这次,我们将使用yum命令来安装apache。
什么是模块? ?
我认为之前的剧本部分中有一个命令部分,该部分成为每个模块。
上次我们介绍了模块作为功能之一,但模块仍在以各种语言进行开发,并且
不仅用于配置服务器本身,还用于配置云平台。
有关详细信息,请参阅下面的实际模块列表链接。
链接: https
我们来尝试一下吧! !
现在让我们最后尝试运行 Ansible。
首先,在主机文件中输入您要使用的主机。
# vi 主机 ======================== [全部] XXX.XXX.XXX.XXX ============= ===========
接下来,我们将创建主要剧本。
# vi operation.yml ======================== --- # 主要 Play 操作 playbook - name: 将通用配置应用到所有节点hosts: all remote_user : ec2-user sudo: yes 任务: - 名称: apache-install yum: name=httpd state=present ==========================
最后使用ansible-playbook命令在目标主机上执行想要执行的命令。
*--private-key= 指定登录目标机的SSH私钥。
# ansible-playbook --private-key=key/id_rsa -ihosts operation.yml PLAY [将通用配置应用于所有节点] ********************** ****** 任务[收集事实] ************************************** ********** ************** 好的: [XXX.XXX.XXX.XXX] 任务 [apache-install] ********* ********** ********************************** 已更改:[XXX.XXX .XXX.XXX] 重温 **** ************************************** ********** ********** XXX.XXX.XXX.XXX : 正常=2 已更改=1 无法访问=0 失败=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 和运营/施工自动化保持哪怕是最轻微的兴趣。
这就是结论。