小编jor*_*ite的帖子

如何根据网络(子网)成员资格在 Ansible 中创建条件副本

如果文件在特定子网中有接口,我想将文件的一个版本复制到服务器,或者如果在该子网中没有接口,则将文件的一个版本复制到服务器。下面是一个工作,但我认为不是最佳解决方案。我希望有一种更好的方法可以满足以下条件...

  • 保持动态(使用事实,我不想为每个服务器手动设置变量并手动为子网中和不在子网中的服务器创建组)
  • 减少重复(可以在一项任务中处理吗?)
  • 不必列出每个可能的接口名称(例如 eth0、eth1、...、bond0、bond1 等)

工作版本...

- name: copy file version 1 to server
  copy:
    src: files/myfile.vs1
    dest: /etc/myfile
  when: (ansible_eth0.network == "192.168.0.0") or
        (ansible_eth1.network == "192.168.0.0") or
        (ansible_eth2.network == "192.168.0.0")
        ...

- name: copy file version 2 to server
  copy:
    src: files/myfile.vs2
    dest: /etc/myfile
  when: (ansible_eth0.network != "192.168.0.0") and
        (ansible_eth1.network != "192.168.0.0") and
        (ansible_eth2.network != "192.168.0.0")
        ...
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook ansible-2.x

6
推荐指数
1
解决办法
2969
查看次数

标签 统计

ansible ×1

ansible-2.x ×1

ansible-playbook ×1