Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自ansible网络接口的订单列表_Ansible_Jinja2_Ansible Facts_Netplan - Fatal编程技术网

来自ansible网络接口的订单列表

来自ansible网络接口的订单列表,ansible,jinja2,ansible-facts,netplan,Ansible,Jinja2,Ansible Facts,Netplan,我正在尝试使用ansible设置linux docker主机。 众所周知,docker创建网络接口。 我的机器还有两个网络接口,用于与不同的网络进行联网。 剧本片段如下所示: - name: Dump grep matching interfaces from ansible_interfaces set_fact: interfaces_list: "{{ ansible_interfaces | select('match', '^(ens)[

我正在尝试使用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
网络:
以太网络:
{{接口列表[0]}:
地址:[{{prod_net_ip}}/24]
网关4:
名称服务器:
地址:[]
dhcp4:没有
{{interfaces_list[1]}}
地址:[{{storage\u net\u ip}}/24]
dhcp4:没有
版本:2
这只是为了了解我在做什么

接口列表可以如下所示
“['ens224','ens192']”

但是网络是手动定义的,而不是使用dhcp,因此我需要按正确的顺序排列列表。
“['ens192','ens224']”

我如何在第一步甚至另一步中对接口列表进行排序

如何在第一步或甚至在第二步中对接口列表进行排序 还有一步吗

列表可以使用set_事实步骤本身上的jinja2过滤器进行排序,如下所示

-设置事实:
接口列表:{{ansible|U接口{select('match','^(ens)[0-9]+')|排序|列表}”
调试给出

ok: [localhost] => 
  interfaces_list:
  - ens192
  - ens224