Ansible - 如何通过环境变量在清单文件中添加客户端列表

Ansible - How to add the client list in inventory file through environment variable

我有以下库存文件

[vm_group]
xyz001.hq.company.com
xyz002.hq.company.com


[vm_group:vars]
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_port=5986
ansible_winrm_server_cert_validation=ignore  

我有一个名为 CLIENT_LIST

的环境变量
echo $CLIENT_LIST
xyz001.hq.company.com,xyz002.hq.company.com

我怎样才能做这样的事情

[vm_group]
${CLIENT_LIST}

以便动态设置库存组。
我尝试按照上面显示的方式进行操作,但它没有获取环境变量值。
您对动态列表还有其他建议吗?不过,环境变量将是我的首选。

你的问题有两种答案:多次播放,或者动态库存插件;静态清单文件中没有变量替换之类的东西

对于多人游戏版本,可以使用add_host::

- hosts: localhost
  connection: local
  tasks:
  - add_host:
      name: '{{ item }}'
      groups:
      - vm_group
    with_items: '{{ lookup("env", "CLIENT_LIST").split(",") }}'

- hosts: vm_group
  # and you're of to the races

对于动态库存版本,世界是你的牡蛎:https://docs.ansible.com/ansible/2.9/plugins/inventory.html#plugin-list