【问题标题】:Ansible creating directories from a list of variablesAnsible 从变量列表创建目录
【发布时间】:2021-03-31 02:12:49
【问题描述】:

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

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

【问题讨论】:

    标签: ansible ubuntu-20.04 raspberry-pi4


    【解决方案1】:

    问:'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 失败的原因。

    【讨论】:

      猜你喜欢
      • 2015-07-14
      • 1970-01-01
      • 2021-10-16
      • 2021-04-16
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多