dsa*_*don 5 ansible ansible-inventory
我有一个 INI 格式的清单文件:
例如:
[db]
8.8.8.8 ansible_user=root ansible_ssh_private_key_file=/keys/root-id_rsa.pem
....
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种在运行时自动加载库存文件的方法,而无需在触发 ansible-playbook 命令时指定哪个库存文件路径
ansible-playbook playbook.yml --inventory-file=hosts (I'm trying to avoid from this) -vv
Run Code Online (Sandbox Code Playgroud)
我熟悉“add_host”模块,但我仍然更喜欢以 INI 格式创建清单文件,并以某种方式让剧本自动加载它。那可能吗?
编辑:
感谢用户@techraf 和@Jeff Hemmen 我添加了更多的问题细节
此外,我不想使用 ansible.cfg 文件,因为我想在 playbook.yml 文件本身内部而不是从外部执行此操作
就像是:
- name: add_host {{environment_type}} db servers
hosts: localhost
vars_files:
- vars/main.yml
roles:
- { role: my_role}
inventory_file: (possible?)
- inventory/hosts.ini (possible?)
Run Code Online (Sandbox Code Playgroud)
我想在 playbook.yml 文件本身内部执行此操作,而不是从外部执行此操作
您无法在 playbook 中设置清单文件。剧本是剧本列表,剧本必须有hosts声明。在 Ansible 尝试(但未能)解释之前,无法从 playbook 内部引用清单hosts。
ansible.cfg指定与您的 playbook 存储在同一目录中的文件中的清单:
[defaults]
inventory = ./hosts
Run Code Online (Sandbox Code Playgroud)