相关疑难解决方法(0)

Ansible在没有手动加载的情况下不会选择group_vars

在我local.yml能够运行剧本和参考变量group_vars/all但我无法访问其中的变量group_vars/phl-stage.我们假设如下.

ansible-playbook -i phl-stage site.yml
Run Code Online (Sandbox Code Playgroud)

我有一个变量,让我们称之为deploy_path每个环境都不同.我把变量放在里面group_vars/< environment name >.如果我group_vars/phl-stagevars_files其中包含文件,但我会认为组文件会自动加载?

site.yml

- include: local.yml
Run Code Online (Sandbox Code Playgroud)

local.yml

- hosts: 127.0.0.1
  connection: local

  vars_files:
    - "group_vars/perlservers"
    - "group_vars/deploy_list"
Run Code Online (Sandbox Code Playgroud)

group_vars/PHL级

[webservers]
phl-web1
phl-web2

[perlservers]
phl-perl1
phl-perl2

[phl-stage:children]
webservers
perlservers
Run Code Online (Sandbox Code Playgroud)

目录结构:

group_vars
  all
  phl-stage
  phl-prod
site.yml
local.yml
Run Code Online (Sandbox Code Playgroud)

ansible

27
推荐指数
1
解决办法
4万
查看次数

无法识别组变量

我正在尝试在 ansible 中设置特定于环境的变量(例如生产、登台、开发)。出于某种原因,ansible 没有在 group_vars/[environment] 中提取变量。

我正在使用 ansible 1.9.1

这是我正在尝试做的一个精简的例子。

目录结构:

.
??? group_vars
?   ??? staging
??? hosts
?   ??? staging
??? site.yml
Run Code Online (Sandbox Code Playgroud)

group_vars/分期:

test_var: "this is a test"
Run Code Online (Sandbox Code Playgroud)

站点.yml:

---
- hosts: localhost
  tasks:
  - debug: msg="test variable = {{ test_var }}"
Run Code Online (Sandbox Code Playgroud)

hosts/staging 是一个空文件

运行输出ansible-playbook -i hosts/staging site.yml

PLAY [localhost] **************************************************************

GATHERING FACTS ***************************************************************
ok: [localhost]

TASK: [debug msg="test variable = {{ test_var }}"] ****************************
fatal: [localhost] => One or more undefined variables: 'test_var' is undefined …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

ansible ×2

ansible-playbook ×1