Ansible создание каталогов из списка переменных

Я начинаю изучать возможности и пытаюсь создать несколько каталогов, которые будут использоваться в разных задачах в 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

Введение в Ansible Roles
Введение в Ansible Roles
Ansible - это отличный инструмент управления конфигурацией, который можно использовать для автоматизации настройки или развертывания на большом...
3
0
437
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В: «предмет» не определен

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.

Другие вопросы по теме