ansible的playbook中task可以有子task吗?帮我写一个模板
时间: 2024-01-23 11:02:12 浏览: 23
可以,Ansible playbook 中的 task 可以具有子 task。以下是一个模板,其中子任务 (subtask) 使用 "include_tasks" 模块引用:
```yaml
---
- name: Playbook with sub-tasks
hosts: servers
tasks:
- name: Main task
debug:
msg: "This is the main task."
- name: Sub-tasks
include_tasks: subtasks.yml
loop:
- task1
- task2
- task3
```
在此模板中,"hosts" 属性指定将在哪些主机上执行任务。"tasks" 列表包含主要任务和一个名为 "Sub-tasks" 的子任务。"include_tasks" 模块引用了一个名为 "subtasks.yml" 的 YAML 文件,该文件包含三个子任务 ("task1"、"task2" 和 "task3") 的定义,并使用 "loop" 属性循环执行。
下面是 "subtasks.yml" 文件的内容:
```yaml
---
- name: Task 1
debug:
msg: "This is a sub task named 'task1'."
- name: Task 2
debug:
msg: "This is a sub task named 'task2'."
- name: Task 3
debug:
msg: "This is a sub task named 'task3'."
```
当 Playbook 运行时,Ansible 将首先执行主任务 ("Main task"),然后执行子任务 ("Sub-tasks")。子任务将循环并依次执行三个 subtask ("task1"、"task2" 和 "task3")。每个子任务都将输出一条消息。