Ansible:从列表中设置 IP 地址



我有一个IPv6地址列表,应该根据特定的主机名为主机分配这些地址。例如:

  • 名为"myhost-dev1"的主机应具有 fd00:1::1/64
  • 名称为"myhost-dev2"的主机应具有 fd00:1::2/64
  • 名称为"myhost-devN"的主机应具有 fd00:1::N/64
  • 名为"myhost-qa1"的主机应具有 fd00:2::1/64
  • 名为"myhost-qaM"的主机应具有 fd00:2::M/64
已分配 IPv4 地址。问:使用 Ansible 分配这些地址的最佳方式是什么?

这是我如何解决它的方法:

  1. 创建 v6.yaml 文件:

    myhost-dev1.example.com: fd00:1::1
    myhost-dev2.example.com: fd00:1::2
    
  2. 添加了以下两个任务:

    - name: Load IPv6 addresses list
      include_vars:
        file: 'v6.yml'
        name: ipv6_addr
    - name: Apply IPv6 addresses
      blockinfile:
        path: '/etc/sysconfig/network-scripts/ifcfg-eth0'
        block: |
          IPV6INIT=yes
          IPV6ADDR={{ ipv6_addr[ansible_fqdn] }}
          IPV6_DEFAULTGW=fd00:1::100
    

最新更新