我正在尝试设置一个带有 ansible 的 linux docker 主机。众所周知,docker 创建网络接口。我的机器还有两个网络接口,用于使用不同的网络进行联网。剧本片段如下所示:
- name: Dump grep matching interfaces from ansible_interfaces
set_fact:
interfaces_list: "{{ ansible_interfaces | select('match', '^(ens)[0-9]+') | list
}}"
- name: Push 50-net.yaml
template:
src: netplan.j2
dest: "/etc/netplan/50-net.yaml"
owner: root
group: root
mode: u=rw,g=r,o=r
像这样的 netplan.j2 模板
network:
ethernets:
{{ interfaces_list[0] }}:
addresses: [{{ prod_net_ip }}/24]
gateway4: <gateway-ip>
nameservers:
addresses: [<dns-server-ip>]
dhcp4: no
{{ interfaces_list[1] }}:
addresses: [{{ storage_net_ip }}/24]
dhcp4: no
version: 2
这只是为了了解我想要做什么。
interfaces_list 看起来像这样
"['ens224','ens192']"
但是网络是手动定义的,而不是使用 dhcp,所以我需要以正确的顺序列出列表。
“['ens192','ens224']”
如何在第一步或什至在另一个步骤中订购interfaces_list ?