我需要在一个列表上执行多项任务。因此,我创建了任务列表并
将其包括在主要手册中。
但是,看起来ansible不能将任务列表识别为任务列表,而是识别为剧本:
错误! “ set_fact”不是Play的有效属性
主要剧本:
---
- name: main playbook
hosts: all
tasks:
- name: subtasks.yaml
include_tasks: subtasks.yaml
loop: "{{ names_list }}"
loop_control:
loop_var: name
任务列表:
---
- name: "create name for the future vm {{ name }}_{{ ansible_date_time.iso8601 }}"
set_fact:
cloned_vm_name: "{{ name }}_{{ ansible_date_time.iso8601 }}"
可用版本:2.7.5
操作系统:Ubuntu 16.04.3
答案 0 :(得分:0)
缩进是错误的。代替
set_fact:
cloned_vm_name:
正确的语法是
set_fact:
cloned_vm_name:
loop_var
同样的问题答案 1 :(得分:0)
在线搜索音调后,我找到了 include_role -here的类似答案 这正在改变生活!
之前:
---
- name: main playbook
hosts: all
tasks:
- name: subtasks.yaml
include_tasks: subtasks.yaml
loop: "{{ names_list }}"
loop_control:
loop_var: name
之后:
---
- name: main playbook
hosts: all
tasks:
- name: subtasks.yaml
include_tasks: subtasks.yaml
vars:
name: "{{ item }}"
with_items: "{{ names_list }}"