Ansible:无法定义以“ /”开头的变量

时间:2019-08-16 05:53:52

标签: ansible

我在variables.yml中有一个变量。在我的ansible剧本中,我想使用该变量。但是它以“ /”字符开头。 Ansible引发以下错误。

  

任务[显示主机已知的所有变量/事实]   ****************************************************** ******************致命:[127.0.0.1]:失败! => {“ msg”:“模板错误,而   模板字符串:意外的“ /”。字符串:{{/ forexcbm-r-0.0.1}}“}

当我从该变量中删除“ /”字符时,playbook正常工作。无论如何,我是否可以转义并使用“ /”字符作为变量前缀?感谢您的关注

set-prefix.yml

---
- name: Apigee Ansible Root
  hosts: localhost
  connection: local
  become: true
  vars_files:
    - variables.yml

  tasks:
  - name: Display all variables/facts known for a host
    debug:
      var: "{{ proxy_base_path_prefix }}"

variables.yml

proxy_base_path_prefix: /forexcbm-r-0.0.1

2 个答案:

答案 0 :(得分:0)

使用var的{​​{1}}参数时,您必须指定变量的名称,而不是内容。

因此将您的播放更改为:


debug

答案 1 :(得分:0)

参数 var: 默认扩展表达式

语法错误(如果应打印 proxy_base_path_prefix 的值)

- debug:
    var: "{{ proxy_base_path_prefix }}"

正确

- debug:
    var: proxy_base_path_prefix

注释

1)可以在调试模块的 "to specify the content of a variable" 参数中使用var:。下面的游戏

- hosts: localhost
  vars:
    var1: var2
    var2: xxx
  tasks:
    - debug:
        var: "{{ var1 }}"

给予

  var2: xxx

2) /forexcbm-r-0.0.1 不是valid variable name

  

变量名称应为字母,数字和下划线。变量应始终以字母开头。

这是错误的原因

... templating string: unexpected '/'.