是否可以在lineinfile ansible模块的路径中使用变量?

时间:2017-09-27 14:46:08

标签: ansible

我有一本剧本

---
- hosts: 127.0.0.1
  connection: local

  vars:
    WORK_DIR: /somefolder

  tasks:

  - debug:
      msg: "{{ WORK_DIR }}"

  - lineinfile:
      path: /somefolder/some.file
      regexp: '"display_name":'
      line: '  "display_name": "another_name",'

工作正常,我有一个调试

ok: [127.0.0.1] => {
    "msg": "/somefolder"
}

但是当我尝试在

这样的路径中使用变量时
- hosts: 127.0.0.1
  connection: local

  vars:
    WORK_DIR: /somefolder

  tasks:

  - debug:
      msg: "{{ WORK_DIR }}"

  - lineinfile:
      path: "{{ WORK_DIR }}"/some.file
      regexp: '"display_name":'
      line: '  "display_name": "another_name",'

出现错误

- lineinfile:
    path: "{{ WORK_DIR }}"/some.file
                          ^ here

问题是为什么?这是一个错误或功能还是其他什么?

1 个答案:

答案 0 :(得分:3)

引用误用。

您应该使用path: "{{ WORK_DIR }}/some.file"