如何使用不同目录下的静态与动态Inventory运行ansible-playbook?
解决Ansible同时加载静态与带参数动态Inventory的问题
你的问题出在参数传递位置错误:-env my_env被当成了ansible-playbook的参数,而非动态Inventory脚本的参数,导致动态脚本没有拿到环境参数,无法生成有效Inventory数据,所以Ansible只加载了第一个静态Inventory。
正确的执行命令需要把动态脚本和它的参数作为一个整体传给-i选项:
ansible-playbook -i static-inventory -i "dynamic-script -env my_env" playbook.yml
如果静态或动态Inventory在其他目录,直接写完整路径即可:
ansible-playbook -i /path/to/static-inventory -i "/path/to/dynamic-script -env my_env" playbook.yml
验证步骤
先单独执行动态脚本,确认它能输出符合Ansible要求的JSON格式Inventory数据:
dynamic-script -env my_env
如果输出正确,再放到ansible-playbook命令中即可同时加载静态和动态Inventory。
内容的提问来源于stack exchange,提问作者N. J
相关产品推荐
相关产品推荐

