我有一本剧本

---
- 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


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

最佳答案

引用滥用。

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

关于ansible - 可以在lineinfile ansible模块的路径中使用变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46450872/

10-12 18:00