读取名称中带有“(”的ansible变量
Reading an ansible variable with "(" in its name
Ansible 变量文件 var.yml:
---
OS: test123
OStype(gb): test
disk size(gb): test
main.yml
---
- name: read varibale-
hosts: localhost
gather_facts: no
tasks:
- include_vars: var.yml
- debug:
msg: "{{ OStype(gb) }}"
错误:
"msg": "The task includes an option with an undefined variable. The error was: 'OStype' is undefined\n\
对于变量名包含特殊字符的情况,可以使用vars
lookup.
鉴于剧本:
- hosts: all
gather_facts: no
tasks:
- include_vars: vars.yml
- debug:
msg: "{{ lookup('vars', 'OStype(gb)') }}"
和文件vars.yml:
OS: test123
OStype(gb): test
disk size(gb): test
这产生:
PLAY [all] *******************************************************************************************************
TASK [include_vars] **********************************************************************************************
ok: [localhost]
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"msg": "test"
}
PLAY RECAP *******************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
将包含的变量放入字典中。例如
- include_vars:
file: var.yml
name: os_dict
- debug:
var: os_dict
- debug:
var: os_dict['disk size(gb)']
给予
"os_dict": {
"OS": "test123",
"OStype(gb)": "test",
"disk size(gb)": "test"
}
}
"os_dict['disk size(gb)']": "test"
}
-
YAML mapping 密钥没有限制
见
参见 bracket-notation 与点符号
Ansible 变量文件 var.yml:
---
OS: test123
OStype(gb): test
disk size(gb): test
main.yml
---
- name: read varibale-
hosts: localhost
gather_facts: no
tasks:
- include_vars: var.yml
- debug:
msg: "{{ OStype(gb) }}"
错误:
"msg": "The task includes an option with an undefined variable. The error was: 'OStype' is undefined\n\
对于变量名包含特殊字符的情况,可以使用vars
lookup.
鉴于剧本:
- hosts: all
gather_facts: no
tasks:
- include_vars: vars.yml
- debug:
msg: "{{ lookup('vars', 'OStype(gb)') }}"
和文件vars.yml:
OS: test123
OStype(gb): test
disk size(gb): test
这产生:
PLAY [all] *******************************************************************************************************
TASK [include_vars] **********************************************************************************************
ok: [localhost]
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"msg": "test"
}
PLAY RECAP *******************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
将包含的变量放入字典中。例如
- include_vars:
file: var.yml
name: os_dict
- debug:
var: os_dict
- debug:
var: os_dict['disk size(gb)']
给予
"os_dict": {
"OS": "test123",
"OStype(gb)": "test",
"disk size(gb)": "test"
}
}
"os_dict['disk size(gb)']": "test"
}
YAML mapping 密钥没有限制
见
参见 bracket-notation 与点符号