如何在 Ansible Playbooks 中定义任务


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

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

任务是您可以使用 Ansible playbook 自动化的最小操作单元。Playbook 通常包含一系列服务于某个目标的任务,例如设置 Web 服务器或将应用程序部署到远程环境。

Ansible 按照它们在 playbook 中定义的相同顺序执行任务。在使设置 LEMP 服务器等过程自动化之前,您需要评估哪些手动步骤是必需的,以及完成所有操作必须遵循的顺序。然后,您将能够确定您需要哪些任务以及可以使用哪些模块以更少的步骤实现您的目标。

模块提供了执行操作的快捷方式,否则您必须作为原始 bash 命令运行。这些也经常用于抽象不同操作系统之间的命令。

在本指南的前一部分中创建第一个剧本时,您定义了一个使用debug. 让我们再看看那个剧本。您可以使用该cat命令打印该文件的内容以供检查:

  • cat ~/ansible-practice/playbook-01.yml

该剧本包含一个任务,用于在剧本的输出中打印一条消息:

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

任务被定义为一个tasks游戏内名称下的列表,与hosts定义该游戏目标指令处于同一级别name属性定义了将要执行该任务时将打印的输出。

示例任务调用debug模块,该模块允许您在剧中显示消息。例如,这些消息可用于显示调试信息,例如变量的内容或命令返回的输出消息。

每个模块都有自己的一组选项和属性。debug模块需要一个名为的属性,msg其中包含要打印的消息。特别注意缩进(2 个空格),因为它msg必须是debug.

觉得文章有用?

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