ansible_runner.run()
接受以下参数值inventory
。
- private_data_dir 中库存文件的路径
- 支持 YAML/json 库存结构的原生 python dict
- 文本 INI 格式的字符串
- 库存来源列表,或用于禁用传递库存的空列表
该参数的默认值,如果未传递,则为private_data_dir/inventory
目录。传递此参数会覆盖清单目录/文件。文档在这里
在问题中给出的代码示例中,主机列表作为inventory
参数值传递,并且根据设计,列表值被视为清单源文件列表。
例子:
可以使用 python 构建包含所有必需详细信息的字典并作为ansible_runner.run(inventory=my_inventory)
.
web_server
并将backend_server
成为主机组名称。
import ansible_runner
my_inventory = {
"web_server": {
"hosts": {
"webserver_1.example.com": {
"ansible_user": "test",
"ansible_ssh_private_key_file": "test_user.pem",
"ansible_host": "webserver_1.example.com"
},
"webserver_2.example.com": {
"ansible_user": "test",
"ansible_ssh_private_key_file": "test_user.pem",
"ansible_host": "webserver_1.example.com"
}
}
},
"backend_server": {
"hosts": {
"backend_server_1.example.com": {
"ansible_user": "test",
"ansible_ssh_private_key_file": "test_user.pem",
"ansible_host": "backend_server_1.example.com"
}
}
}
}
runner_result = ansible_runner.run(private_data_dir='.', inventory=my_inventory, playbook='check_ping.yml')
print(runner_result.stats)
注意:这样做会将内容保存在目录中的hosts.json
文件中private_data_dir/inventory
。
另一种方法是将 YAML/json 格式的主机详细信息写入private_data_dir/inventory
目录内的文件中。