我们的供应商向我们发送Ansible playbooks和脚本以进行部署。我需要检查安全库存组的某些IP的可用性,例如:
ansible mgm -i inventories/vrxinventory -m shell -a 'ping http://10.33.63.66/vrx/' -u user -k -v
。
目的地正在根据环境而变化。要ping的目标IP在组变量.yml文件中。
是否可以通过命令行使用此group_var.yml文件中的变量:
ansible mgm -i inventories/vrxinventory -m shell -a "ping {{ vrm_repo_url }}" -u user -k -v
?
我真的不想在CI期间使用sed / awk修改他们的剧本修改。
答案 0 :(得分:1)
是否可以通过命令行使用此group_var.yml文件中的变量:
ansible mgm -i inventories/vrxinventory -m shell -a "ping {{ vrm_repo_url }}" -u user -k -v
是的,ansible
命令会为ad-hoc命令读取组变量。
不,在Ansible中执行ping {{ vrm_repo_url }}
到shell
模块没有任何意义:
ping
无限运行(这可以通过参数来缓解); ping
命令的任何输出。您最想要的是使用:
wait_for
module connect_timeout
参数,用于检查目标与其他计算机之间的连接性;
或get_url
module(因为您似乎想检查网络服务的可用性)。