我有一个INI格式的库存文件:
例如:
[db]
8.8.8.8 ansible_user=root ansible_ssh_private_key_file=/keys/root-id_rsa.pem
....
我正在寻找一种方法来运行 automatically load 我的库存文件而不指定当我触发我的ansible-playbook命令时哪个库存文件路径
ansible-playbook playbook.yml --inventory-file=hosts (I'm trying to avoid from this) -vv
我熟悉“add_host”模块,但我更喜欢用INI格式创建一个库存文件,并以某种方式让playbook自动加载它 . 那可能吗?
Edit:
感谢用户@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?)
2 回答
您无法在剧本中设置库存文件 . Playbook是一个播放和播放列表 must 有
hosts
声明 . 在Ansible尝试(并且未能)解释hosts
之前,无法从剧本内部引用库存 .指定存储在与playbook相同的目录中的ansible.cfg文件中的库存:
在你的ansible.cfg中,在
[defaults]
部分中,有一个名为inventory
的指令 . 将其设置为您的库存文件或目录 .我读到: