Ansible:从命令行包含group vars .yml文件

时间:2017-11-13 12:13:19

标签: bash ansible

我们的供应商向我们发送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修改他们的剧本修改。

1 个答案:

答案 0 :(得分:1)

  

是否可以通过命令行使用此group_var.yml文件中的变量:ansible mgm -i inventories/vrxinventory -m shell -a "ping {{ vrm_repo_url }}" -u user -k -v

  1. 是的,ansible命令会为ad-hoc命令读取组变量。

  2. 不,在Ansible中执行ping {{ vrm_repo_url }}shell模块没有任何意义:

    • 首先,因为默认情况下ping无限运行(这可以通过参数来缓解);
    • 其次,因为您没有看到ping命令的任何输出。
  3. 您最想要的是使用:

    • wait_for module connect_timeout参数,用于检查目标与其他计算机之间的连接性;

    • get_url module(因为您似乎想检查网络服务的可用性)。