根据服务器变量构建 Ansible 库存

根据服务器变量构建 Ansible 库存

我想构建可靠的清单,并根据从客户端收集的值将主机分配给相应的组。

例如:所有客户端及其各自组的信息将每晚以以下格式推送到 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 }}"

相关内容