Ansible 剧本:在 运行 时加载内部清单文件
Ansible playbook: load internal inventory file while running
我有一个 INI 格式的库存文件:
例如:
[db]
8.8.8.8 ansible_user=root ansible_ssh_private_key_file=/keys/root-id_rsa.pem
....
我正在寻找一种方法来自动加载我的库存文件,而运行在我触发我的ansible-playbook命令时没有指定哪个库存文件路径
ansible-playbook playbook.yml --inventory-file=hosts (I'm trying to avoid from this) -vv
我熟悉 "add_host" 模块,但我仍然更喜欢创建 INI 格式的清单文件,并以某种方式让 playbook 自动加载它。这可能吗?
编辑:
感谢用户@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?)
I want to perform this inside the playbook.yml file itself and not from outside
您不能在剧本中设置库存文件。剧本是剧本列表,剧本 必须 有 hosts
声明。在 Ansible 尝试(并且未能)解释 hosts
.
之前,无法从剧本内部引用清单
在 ansible.cfg
文件中指定库存,该文件存储在与您的剧本相同的目录中:
[defaults]
inventory = ./hosts
在您的 ansible.cfg 中,在 [defaults]
部分中,有一个名为 inventory
的指令。
将其设置为您的库存文件或目录。
我的内容是:
...
[defaults]
# some basic default values...
inventory = inventory/
...
我有一个 INI 格式的库存文件:
例如:
[db]
8.8.8.8 ansible_user=root ansible_ssh_private_key_file=/keys/root-id_rsa.pem
....
我正在寻找一种方法来自动加载我的库存文件,而运行在我触发我的ansible-playbook命令时没有指定哪个库存文件路径
ansible-playbook playbook.yml --inventory-file=hosts (I'm trying to avoid from this) -vv
我熟悉 "add_host" 模块,但我仍然更喜欢创建 INI 格式的清单文件,并以某种方式让 playbook 自动加载它。这可能吗?
编辑:
感谢用户@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?)
I want to perform this inside the playbook.yml file itself and not from outside
您不能在剧本中设置库存文件。剧本是剧本列表,剧本 必须 有 hosts
声明。在 Ansible 尝试(并且未能)解释 hosts
.
在 ansible.cfg
文件中指定库存,该文件存储在与您的剧本相同的目录中:
[defaults]
inventory = ./hosts
在您的 ansible.cfg 中,在 [defaults]
部分中,有一个名为 inventory
的指令。
将其设置为您的库存文件或目录。
我的内容是:
...
[defaults]
# some basic default values...
inventory = inventory/
...