Bash Ansible:从命令行包括组vars.yml文件

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剧本和脚本以供部署。我需要检查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“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
    命令读取

  • 不,在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
    。这就是为什么他们会成为团队成员。