Я настраиваю NGINX в качестве прямого / обратного прокси для наших кластеров VMware. У меня есть VMWare VM, работающая NGINX с несколькими сетевыми картами. Что я хочу сделать, так это получить сетевые карты, начинающиеся с 'ens', и добавить это к iptables как прямое правило для некоторого типа l oop, но я не знаю, как это сделать.
Это Вот как я добавляю правило пересылки для ens192:
- name: Get IPtable rules
shell: cat /etc/iptables/rules.v4
register: iptablesrules
tags: iptables
- name: Add iptable forward rule
command: sudo iptables -A FORWARD -i ens192 -o ens160 -j ACCEPT
when: iptablesrules.stdout.find("-A FORWARD -i ens192 -o ens160 -j ACCEPT") == -1
tags: iptables
- name: Save IPtable rules
shell: sh -c "iptables-save > /etc/iptables/rules.v4"
tags: iptables
У меня есть этот тестовый код для получения сетевых карт, но я не знаю, как изменить это на al oop для использования:
- name: debug show interface
debug:
msg: "{{ (item) }}"
with_items: "{{ ansible_interfaces }}"
when: item.find("ens") != -1
- name: find potential good network interface cards
set_fact:
fwrule: "sudo iptables -A FORWARD -i {{ (item) }} -o ens160 -j ACCEPT"
register: fwrulelist
with_items: "{{ ansible_interfaces }}"
when:
- item.find("ens") != -1
- name: debug show interface
debug: var=fwrulelist.results
Вот результат, который я получаю:
ok: [PXY1] => {
"fwrulelist.results": [
{
"ansible_loop_var": "item",
"changed": false,
"item": "docker0",
"skip_reason": "Conditional result was False",
"skipped": true
},
{
"ansible_loop_var": "item",
"changed": false,
"item": "lo",
"skip_reason": "Conditional result was False",
"skipped": true
},
{
"ansible_facts": {
"fwrule": "sudo iptables -A FORWARD -i ens224 -o ens160 -j ACCEPT"
},
"ansible_loop_var": "item",
"changed": false,
"failed": false,
"item": "ens224"
},
{
"ansible_facts": {
"fwrule": "sudo iptables -A FORWARD -i ens160 -o ens160 -j ACCEPT"
},
"ansible_loop_var": "item",
"changed": false,
"failed": false,
"item": "ens160"
},
{
"ansible_loop_var": "item",
"changed": false,
"item": "veth9b95b5f",
"skip_reason": "Conditional result was False",
"skipped": true
},
{
"ansible_loop_var": "item",
"changed": false,
"item": "veth3acbf56",
"skip_reason": "Conditional result was False",
"skipped": true
},
{
"ansible_facts": {
"fwrule": "sudo iptables -A FORWARD -i ens192 -o ens160 -j ACCEPT"
},
"ansible_loop_var": "item",
"changed": false,
"failed": false,
"item": "ens192"
},
{
"ansible_loop_var": "item",
"changed": false,
"item": "br-8fd009301146",
"skip_reason": "Conditional result was False",
"skipped": true
}
]
}