Ansible 2.7.5 |错误! “ set_fact”不是Play的有效属性

时间:2018-12-17 14:58:47

标签: loops ansible syntax-error

我需要在一个列表上执行多项任务。因此,我创建了任务列表并 将其包括在主要手册中。
但是,看起来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

2 个答案:

答案 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 }}"