我正在使用Ansible配置一些虚拟机。我编写了一个Python脚本,它从REST服务检索主机。
我的虚拟机是在“环境”中组织的。例如,我有“Test”、“Red”和“Integration”环境,每个环境都有一个子集vm。
此Python脚本需要自定义的--environment <ENV>
参数来检索所需环境的主机。
我遇到的问题是将<ENV>
传递给ansible-playbook
命令。
实际上下面的命令不起作用
ansible-playbook thePlaybook.yml -i ./inventory/FromREST.py --environment Test
我知道错误:
Usage: ansible-playbook playbook.yml
ansible-playbook: error: no such option: --environment
向动态清单脚本传递变量的正确语法是什么?
更新:
为了更好地解释,脚本FromREST.py
接受以下参数:
--list
参数,也可以是--host <HOST>
参数--environment <ENVIRONMENT>
参数,添加到Ansible所需的参数中,以管理不同的环境
我有类似的问题,我没有找到任何解决方案,所以我只是修改了动态清单,如果用户不通过
--env
,就使用OS环境变量在库存中捕获env var,如下所示:
import os print os.environ['ENV']
将env var传递给ansibe
export ENV=dev ansible -i my_custom_inv.py all --list-host
使用
$PPID
解析来自进程快照的-e
/--extra-vars
的解决方案。inventory.sh
文件inventory.py
返回群集cl_01
的JSON
库存。我知道不漂亮,但很管用。
相关问题 更多 >
编程相关推荐