Ansible 是一种流行的服务器配置管理工具,允许用户从单个控制节点管理和监控远程系统。 使用 Ansible,您可以从单个节点在多个主机上安装软件包、部署服务和进行配置,而无需登录到每个节点。 我们已经有了如何在 Ubuntu 20.04 上安装和设置 Ansible 的指南。 当您阅读本指南时,这将为您提供介绍和可能的领先优势。 在本指南中,我们将重点关注什么是 playbook、如何创建它们以及使用它们来部署服务。
实验室设置
我们已经有一个家庭实验室,如下所示。 要充分利用本指南,您可以复制它或在虚拟化平台上拥有类似的实验室环境:
Ansible 控制节点 IP:192.168.2.106
托管主机 IP:192.168.2.108
检查设置后,让我们开始吧。
什么是剧本文件?
Ansible 就像 Terraform 一样,属于基础设施即代码。 这是什么意思? 基础设施即代码 (IaC) 被描述为一种使用机器可读的配置文件来配置和管理主机的机制,而不是物理登录和进行配置。 在 Ansible 中,剧本就是这样一种配置文件。
剧本是 YAML 中包含一个或多个剧本的文件。 什么是戏? 播放是一个有序的任务,它在托管主机上自动执行任务或流程,例如部署 Web 服务器等应用程序或进行配置。 剧本可以有一个或多个剧本,每个剧本执行不同的任务。
播放使用具有特殊功能的模块来指定远程主机所需的更改。 每个模块都是特殊的,并定义了一个特定的任务。
剧本文件保存在 .ly 或者 .yaml 文件扩展名。
创建剧本文件
现在让我们创建一个剧本文件。 在这个演示中,我们将创建一个名为的剧本文件 问候.yml 在 Ansible 目录路径中 /etc/ansible 如图所示。
$ sudo vim /etc/ansible/greetings.yml
添加以下配置。 这是一个简单的剧本,可以将消息打印到远程服务器上的标准输出。 注意模块的缩进。
Ansible Playbook 文件以三个连字符 ( — ) 表示它是一个 YAML 文件。 这 ‘主机’ 参数指定清单文件中定义的远程主机或主机组,默认情况下位于 /etc/ansible/主机。 这里, 分期 是IP的远程主机所在的主机组 192.168.2.108 被定义为。
远程主机定义在名为的主机组下 分期 与以下条目。
[staging] 192.168.2.108 ansible_ssh_pass=xxxxxxxx ansible_ssh_user=jack
这 ansible_ssh_pass 指定远程用户的 SSH 密码,同时 ansible_ssh_use 指定远程主机上的用户名。