Bash Ansible:从命令行包括组vars.yml文件
我们的供应商向我们发送Ansible剧本和脚本以供部署。我需要检查ansible库存组的某些IP的可用性,如:Bash Ansible:从命令行包括组vars.yml文件,bash,ansible,Bash,Ansible,我们的供应商向我们发送Ansible剧本和脚本以供部署。我需要检查ansible库存组的某些IP的可用性,如: ansible mgm-i存货/vrxinventory-m壳牌-a'pinghttp://10.33.63.66/vrx/'-u user-k-v。 目的地根据环境而变化。要ping的目标IP位于组vars.yml文件中 是否可以通过以下命令行使用此group_var.yml文件中的变量: ansible mgm-i Inventory/vrxinventory-m shell-a“
ansible mgm-i存货/vrxinventory-m壳牌-a'pinghttp://10.33.63.66/vrx/'-u user-k-v
。
目的地根据环境而变化。要ping的目标IP位于组vars.yml文件中
是否可以通过以下命令行使用此group_var.yml文件中的变量:
ansible mgm-i Inventory/vrxinventory-m shell-a“ping{{vrm_repo_url}”-u user-k-v
我真的不想在CI期间用sed/awk修改他们的剧本
是否可以通过命令行使用来自这个group_var.yml文件的变量,比如:ansible mgm-i inventory/vrxinventory-mshell-a“ping{vrm_repo_url}”-u user-k-v
ansible
命令读取shell
模块执行ping{{{vrm\u repo\u url}}
是没有意义的:
- 首先,因为默认情况下,
无限运行(这可以通过参数来缓解)李>ping
- 其次,因为您不会看到
命令的任何输出ping
您最可能想要的是使用:
- 一个低
参数,用于检查目标机器与其他机器之间的连接connect\u timeout
- 或者(就像您似乎想要检查web服务的可用性一样)
pinghttp://10.33.63.66/vrx/
command-它是如何工作的?能否请您详细说明如何在临时命令期间使用yml文件中的变量?将ping{{{vrm_repo_url}}
替换为echo{{vrm_repo_url}>/tmp/result.txt
并检查文件的内容。你应该得到在组变量中定义的值,就像你在剧本中使用它们一样。我的意思是,在特别命令执行期间,如何使用这个group\u var
yml文件?在您的示例中,您刚刚使用了一个变量,但我需要使用哪个ansible
命令标记来附加此变量文件?不,您从不“附加”组变量-它们是自动读取的-无论您是使用ansible playbook
还是临时ansible
。这就是为什么他们会成为团队成员。