我是 ansible 的新手,并尝试自动化服务器接口配置。只是一些默认值,如 ip、网关、dns 等。
我有一个任务,叫做 config_interfaces;
---
- name: nmcli add Ethernet
community.general.nmcli:
type: ethernet
conn_name: '{{ item.conn_name }}'
ip4: '{{ item.ip4 }}'
gw4: '{{ item.gw4 }}'
dns4: '{{ item.dns4 }}'
never_default4: '{{ item.default4 }}'
state: present
with_items:
- '{{ nmcli_ethernet }}'
register: add_interface_output
- name: restart interfaces
command: bash -c "nmcli con up {{ add_interface_output.conn_name }}"
when: add_interface_output.changed == true
with_items: "{{ add_interface_output.changed }}"
然后我有我的 group_vars 文件,其中包含 nmcli_etherrnet 变量;
---
nmcli_ethernet:
- conn_name: ens33
ifname: ens33
ip4: '{{ config_interfaces.ip_lan }}'
gw4: '{{ ip_lan_gw }}'
dns4: '{{ ip_lan_dns }}'
default4: no
- conn_name: ens37
ifname: ens37
ip4: '{{ config_interfaces.ip_trans }}'
default4: yes
- conn_name: eth1
ifname: eth1
ip4: '{{ config_interfaces.ip_exch1 }}'
default4: yes
- conn_name: eth2
ifname: eth2
ip4: '{{ config_interfaces.ip_exch2 }}'
default4: yes
ip_lan_gw: "192.168.226.2"
ip_lan_dns:
- 8.8.8.8
- 8.8.4.4
never_default4: yes
它总是失败
失败的!=> {"msg": "'nmcli_ethernet' 未定义"}
我现在正在寻找几天,不知道我在哪里误解了 with_items 函数。我敢打赌这只是一个小问题,但我不明白。
请帮忙