2

我有以下 vars 文件和 Ansible 任务,它允许防火墙上特定源 IP 的某些端口。

但由于某种原因,每当我运行任务时,我都会收到此错误:

FAILED! => {"msg": "The task includes an option with an undefined variable.

即使我能够使用debugAnsible 模块回显这些变量,所以基本上我只是无法在此任务中专门使用这些变量。

Ansible 任务:

---
- name:
  firewalld:
    permanent: yes
    port: "{{ item.0 }}"
    state: enabled
    zone: public
    source: "{{ item.1 }}"
    with_nested: 
      - "{{ ports }}"
      - "{{ ips }}"

变量文件:

ports:
  - "8000/tcp"
  - "9997/tcp"
  - "8181/tcp"
  - "8080/tcp"
  - "8191/tcp"
  - "8088/tcp"
  - "8065/tcp"
  
ips:
  - "192.168.210.30/32"
  - "192.168.210.35/32"
  - "192.168.210.40/32"
  - "192.168.210.31/32"
  - "192.168.210.36/32"
  - "192.168.210.41/32"
  - "192.168.210.42/32"
  - "192.168.210.37/32"

4

1 回答 1

4

的缩进with_nested是错误的。正确的语法是

- name:
  firewalld:
    permanent: yes
    port: "{{ item.0 }}"
    state: enabled
    zone: public
    source: "{{ item.1 }}"
  with_nested: 
    - "{{ ports }}"
    - "{{ ips }}"
于 2019-09-16T08:13:36.490 回答