0

我是 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 函数。我敢打赌这只是一个小问题,但我不明白。

请帮忙

4

0 回答 0