Ansible 从变量列表创建目录

Ansible creating directories from a list of variables

我开始学习 ansible 并尝试创建一些目录,这些目录将用于剧本中的不同任务,因此我为每个目录创建了变量。

到目前为止我的剧本。

---
- name: tests
  hosts: all
  vars:
    dir1: /data/dir1
    dir2: /mnt/dir2
  tasks:
    - debug:
        msg: "{{ item }}"
      loop:
        - "{{ dir1 }}"
        - "{{ dir2 }}"
    - name: create directories
      file:
        path: "{{ item }}"
        state: directory
        mode: '0755'
        loop:
          - "{{ dir1 }}"
          - "{{ dir2 }}"

调试按预期工作,但出现此错误

The task includes an option with an undefined variable. The error was: 'item' is undefined

也试过

    - name: create directories
      file:
        path: "{{ item }}"
        state: directory
        mode: '0755'
        with_items:
          - "{{ dir1 }}"
          - "{{ dir2 }}"

在 Ubuntu 上使用 Ansible 2.9.6 在 Raspberry Pi 4

上使用 20.04 LTS

问:'item'未定义

A​​:loop的缩进错误(with_items同)。修复语法

    - name: create directories
      file:
        path: "{{ item }}"
        state: directory
        mode: '0755'
      loop:
        - "{{ dir1 }}"
        - "{{ dir2 }}"

可能 Ansible 在模块参数之前检查变量。这可能是 Ansible 以 'item' is undefined 而不是 'loop' unknown parameter of the module file.

失败的原因