在我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-stage在vars_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 中设置特定于环境的变量(例如生产、登台、开发)。出于某种原因,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)