python - 读取名称中包含 "("的 ansible 变量

标签 python ansible jinja2

Ansible var 文件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   

关于python - 读取名称中包含 "("的 ansible 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65010535/

相关文章:

python - 如何绑定(bind)flask-wtform UnboundField?

python - 无法加载在 Google Colaboratory 中创建的模型

ansible - 使用一个主机组中的事实通过 Ansible 配置另一个主机组

python - 无法使用 Python-Flask 在 html 中设置变量值 - 值转换为编码格式

linux - ansible - 通过 ansible-playbook 执行 InstallHalyard.sh 脚本时没有任何反应

linux - ansible 重启 2.1.1.0 失败

linux - Jinja 模板中的 Ansible 多个事实

python - 比较列表中的多个唯一字符串

python - 在 Python 中按字母数字顺序对字典(包含在列表中)进行排序

python - 如何派生带有修饰方法的类?