我想构建可靠的清单,并根据从客户端收集的值将主机分配给相应的组。
例如:所有客户端及其各自组的信息将每晚以以下格式推送到 ansible 服务器。
文件格式
Hostgroup1,Hostname1
Hostgroup1,Hostname2
Hostgroup1,Hostname3
Hostgroup2,Hostname1
Hostgroup2,Hostname2
根据上述文件的内容,我需要创建 ansible 库存
答案1
您可以在此处使用多个选项。
1)编写一个脚本,获取这些文件并生成 ansible 使用的“库存文件”格式。然后在所有上传完成后在 cron 作业或其他任务上运行该脚本。
2)编写一个脚本,生成符合以下格式的输出:Ansible 库存 JSON 格式,并这样使用它:https://docs.ansible.com/ansible/2.5/plugins/inventory/script.html
3)使用add_host
任务类型作为剧本中的第一个任务(与localhost
主机)用一个循环来添加主机。
add_host:
name: "{{ item.hostname }}"
groups: "{{ item.group }}"
with_items: "{{ somehow inject your list here }}"