Я начинаю изучать возможности и пытаюсь создать несколько каталогов, которые будут использоваться в разных задачах в playbook, поэтому я создаю переменные для каждого из них.
Моя книга игр на данный момент.
---
- 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 }}"
Использование Ansible 2.9.6 в Ubuntu 20.04 LTS на Raspberry Pi 4
В: «предмет» не определен
A: Отступ цикла неправильный (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
.