从变量列表创建目录是安全的



我开始学习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 }}"

在Raspberry Pi 4 上使用Ubuntu 20.04 LTS上的Ansible 2.9.6

Q:"项目"未定义

A:循环的缩进错误(与_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失败的原因。

最新更新