gpt4 book ai didi

Ansible:如何在剧本中声明全局变量?

转载 作者:行者123 更新时间:2023-12-02 16:06:38 24 4
gpt4 key购买 nike

如何在 Ansible playbook 中声明全局变量。我在谷歌中搜索并找到了以下解决方案,但它没有按预期工作。

- hosts: all
vars:
prod-servers:
- x.x.x.x
- x.x.x.x


- hosts: "{{prod-servers}}"
tasks:
- name: ping
action: ping

当我尝试上面的代码时,它说变量 prod-servers 未定义。

最佳答案

无法定义可从 play 中在 playbook 级别访问的变量(全局变量)。

Variable Scopes

Ansible has 3 main scopes:

  • Global: this is set by config, environment variables and the command line

  • Play: each play and contained structures, vars entries (vars; vars_files; vars_prompt), role defaults and vars.

  • Host: variables directly associated to a host, like inventory, include_vars, facts or registered task outputs

因此,您在 play 中声明的任何内容都只能是 play 变量或(主机)事实。

<小时/>

要定义一个变量,您可以在 hosts 声明中使用该变量:

  • 使用 --extra-vars 选项运行 ansible-playbook 并传递参数中的值;

或者实现相同的功能(从之前的游戏中决定在哪些主机上运行游戏):

关于Ansible:如何在剧本中声明全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47392748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com