是否可以在提供商
中使用多个主机的网络模块,即 ios_configpublic class Cycle{
private int price;
Cycle(int price) {
this.price = price;
}
int getPrice() {
return this.price;
}
@Override
public String toString() {
return "" + this.price;
}
public boolean equals(Cycle cycle) {
return this.getPrice() == cycle.getPrice();
}
}
理想情况下,我希望能够遍历多个主机。
我确实尝试了- hosts: localhost
vars:
cli:
host:
- 192.168.1.222
- 192.168.1.200
username: admin
password: PASS1
authorize: yes
auth_pass: PASS2
tasks:
- name: Do something
ios_config:
lines:
- ntp logging
- ntp source Vlan900
provider: "{{cli}}"
,只使用了主要示例中的列表,但我并不幸运。
可以吗?
答案 0 :(得分:1)
您可以使用模板化提供程序变量并利用Ansible的主机循环机制:
主机:
[devices]
192.168.1.222
192.168.1.200
剧本:
- hosts: devices
connection: local
vars:
cli:
host: "{{ inventory_hostname }}"
username: admin
password: PASS1
authorize: yes
auth_pass: PASS2
tasks:
- name: Do something
ios_config:
lines:
- ntp logging
- ntp source Vlan900
provider: "{{ cli }}"
我添加connection: local
强制Ansible从localhost执行所有操作(根据网络模块的要求)并在host: "{{ inventory_hostname }}"
变量中使用cli
。