创建并运行您的第一个 Ansible Playbook


该系列的一部分:
如何编写 Ansible Playbooks

Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。

Playbooks 使用 YAML 格式来定义一个或多个playplay 是一组有序的任务,它们以某种方式排列以实现流程自动化,例如设置 Web 服务器或将应用程序部署到生产中。

在剧本文件中,播放被定义为一个 YAML 列表。典型的游戏开始于确定哪些主机是该特定设置的目标。这是通过hosts指令完成的

hosts指令设置all是一个常见的选择,因为您可以通过运行ansible-playbook带有-l参数命令来限制执行时播放的目标这允许您在不同的服务器或组上运行相同的剧本,而无需每次更改剧本文件。

首先在您的主文件夹中创建一个新目录,您可以在其中保存练习手册。首先,确保您位于 Ubuntu 用户的主目录中。从那里,创建一个名为的目录ansible-practice,然后使用以下cd命令导航到该目录

  • cd ~
  • mkdir ansible-practice
  • cd ansible-practice

如果您遵循了所有先决条件,您应该已经有一个有效的清单文件。您现在可以将该文件复制到新ansible-practice目录中。例如,如果您ansible在主文件夹目录中创建了测试清单文件,则可以使用以下命令将该文件复制到新目录:

  • cp ~/ansible/inventory ~/ansible-practice/inventory

接下来,创建一个新的剧本文件:

  • nano playbook-01.yml

以下 playbook 定义all了给定库存中的 play 定位主机。它包含一个打印调试消息的任务。

注意:我们将在本系列的下一部分中了解有关任务的更多信息。

将以下内容添加到您的playbook-01.yml文件中:

~/ansible-practice/playbook-01.yml
---
- hosts: all
  tasks:
    - name: Print message
      debug:
        msg: Hello Ansible World

完成后保存并关闭文件。如果您正在使用nano,则可以通过键入CTRL+X、 然后YENTER进行确认。

要在您在清单文件中设置的服务器上试用此剧本,ansible-playbook请使用您在本系列介绍中运行连接测试时使用的相同连接参数运行。在这里,我们将使用名为清单文件inventory萨米用户连接到远程服务器,但一定要改变这些细节,对齐用自己的清单文件和管理用户:

  • ansible-playbook -i inventory playbook-01.yml -u sammy

你会看到这样的输出:

Output
PLAY [all] *********************************************************************************** TASK [Gathering Facts] *********************************************************************** ok: [203.0.113.10] TASK [Update apt cache] ********************************************************************** ok: [203.0.113.10] => { "msg": "Hello Ansible World" } PLAY RECAP *********************************************************************************** 203.0.113.10 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

您可能已经注意到,即使您在剧本中只定义了一个任务,但在播放输出中列出了两个任务。在每次播放开始时,Ansible 默认执行一项额外任务,用于收集有关远程节点的信息(称为事实)因为可以在剧本上使用事实来更好地自定义任务的行为,所以事实收集任务必须在执行任何其他任务之前发生。

我们将在本系列的后面部分了解有关 Ansible 事实的更多信息。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁