我开始学习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
失败的原因。