gpt4 book ai didi

vagrant - 未找到 group_vars/all 中定义的 Ansible 变量

转载 作者:行者123 更新时间:2023-12-04 02:11:50 24 4
gpt4 key购买 nike

假设 Ansible 结构:

.
├── group_vars
│   └── all
└── site.yml

在哪里 all包含 my_test_variable: yes , 和 site.yml是:
- hosts: all

tasks:
- name: Variable test
debug: msg={{ my_test_variable }}

我正在使用 Vagrant 在本地运行它,因此命令如下所示:
$ ansible-playbook site.yml -i /path-to-vagrant/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory --private-key=/path-to-vagrant/.vagrant/machines/default/virtualbox/private_key -u vagrant
Vagrant 生成的 list 文件:
# Generated by Vagrant

default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222

和输出:
PLAY: ***************************************************************************

TASK [setup] ********************************************************************
ok: [default]

TASK [Variable test] ************************************************************
fatal: [default]: FAILED! => {"msg": "ERROR! the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'my_test_variable' is undefined", "failed": true}

PLAY RECAP **********************************************************************
default : ok=1 changed=0 unreachable=0 failed=1

我知道这个 vagrant 库存不在任何组内 - 因为没有任何组 - 但所有组都继承自 全部 , 对?

为什么它不起作用?我错过了什么?

我对 Ansible 很陌生。阅读大量文档、几个示例甚至一些 SO 问题,例如 Ansible doesn't pick up group_vars without loading it manually -- 不是我的问题 -- 和 Cannot get ansible to recognize group variables - 关闭但也不在那里。

编辑

我正在遵循 Ansible's doc 中推荐的项目结构,并在 variables doc entry他们提到了 全局变量/全部 :

Site wide defaults should be defined as a ‘group_vars/all’ setting.



即使没有关于如何加载这些默认值的直接引用,我认为我不必显式添加它们(就像@thiago-borges 的答案中所建议的那样)。还是我?

这样做的原因是我打算让组变量继承自 全部 , 像:
.
├── group_vars
│ └── all
│ └── production
│ └── staging
└── site.yml

当我为每个执行 ansible-playbook 时,会加载不同的文件,而无需在播放文件中明确设置它们,例如:
ansible-playbook -i production site.yml
编辑 2

这个问题是 ansible 上的一个错误。更新后,它按记录工作。

那我应该删除这个问题吗?

最佳答案

在您的 site.yml 上,尝试设置 var_files 配置。

- hosts: all
vars_files:
- group_vars/all
tasks:
- name: Variable test
debug: msg={{ my_test_variable }}

关于vagrant - 未找到 group_vars/all 中定义的 Ansible 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343753/

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