如何创建和运行 Ansible Playbook 文件

Ansible 是一种流行的服务器配置管理工具,它允许用户从单个控制节点管理和监控远程系统。 使用 Ansible,您可以从单个节点在多个主机上安装软件包、部署服务和进行配置,而无需登录到每个节点。 我们已经有了如何在 Ubuntu 20.04 上安装和设置 Ansible 的指南。 当您阅读本指南时,这将为您提供介绍和可能的领先优势。 在本指南中,我们将重点关注什么是 playbook、如何创建它们以及使用它们来部署服务。

实验室设置

我们已经有一个家庭实验室,如下所示。 要充分利用本指南,您可以复制它或在虚拟化平台上拥有类似的实验室环境:

Ansible 控制节点 IP:192.168.2.106

托管主机 IP:192.168.2.108

检查设置后,让我们开始吧。

什么是剧本文件?

Ansible 就像 Terraform 一样,属于基础设施即代码。 这是什么意思? 基础设施即代码 (IaC) 被描述为一种使用机器可读的配置文件来配置和管理主机的机制,而不是物理登录和进行配置。 在 Ansible 中,剧本就是这样一种配置文件。

剧本是 YAML 中包含一个或多个剧本的文件。 什么是戏? 播放是一个有序的任务,它在托管主机上自动执行任务或流程,例如部署 Web 服务器等应用程序或进行配置。 剧本可以有一个或多个剧本,每个剧本执行不同的任务。

播放使用具有特殊功能的模块来指定远程主机上所需的更改。 每个模块都是特殊的,并定义了一个特定的任务。

剧本文件保存在 .yml 或者 .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 指定远程主机上的用户名。

接下来,我们有了这部剧的名字“打印一条简单的消息” 其次是 调试 打印出由定义的消息的模块 味精 模块。

执行剧本文件

要执行剧本,只需使用 ansible-剧本 下面提供的语法中的命令。

$ ansible-playbook /path/to/playbook-file

在我们的例子中,这将是:

$ ansible-playbook /etc/ansible/greetings.yml

在播放执行期间,Ansible 首先打印出将在其上执行播放的主机组或远程主机的名称——在我们的例子中是 分期 团体。 Ansible 然后检索有关该剧的信息,称为 事实, 最后执行剧本中指定的动作。 在这里,打印了简单的消息。

让我们再来一个 example 一个名为的剧本文件 install_apache_and_git.yml 如下所示。 在这里,我们有两部戏。 第一场戏安装了 Apache 网络服务器,而第二个游戏在远程系统上安装 git。 这 变成:真 参数以提升的用户身份执行命令或 sudo 正如预期的那样,远程用户上的用户。

当剧本被执行时,所有剧本从第一个到最后一个执行顺序列出。 剧本首先安装 Apache 安装 git 之前的 web 服务器。 这 –问-成为-通过 指令提示 sudo 用户以执行剧本中定义的任务。

总结

这就是您可以创建一个简单的剧本文件并执行它的方法。 我们希望这提供了对 Ansible playbook 文件、其结构以及如何使用它在远程主机上执行任务的基本理解。