如何在AnsiblePlaybook中定义任务

来自菜鸟教程
跳转至:导航、​搜索

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

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

Modules 提供了执行操作的快捷方式,否则您必须将其作为原始 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 内部的属性。