How to create an empty file with Ansible?

后端 未结 10 883
傲寒
傲寒 2021-01-31 12:53

What is the easiest way to create an empty file using Ansible? I know I can save an empty file into the files directory and then copy it to the remote host, but I f

10条回答
  •  耶瑟儿~
    2021-01-31 13:24

    A combination of two answers, with a twist. The code will be detected as changed, when the file is created or the permission updated.

    - name: Touch again the same file, but dont change times this makes the task idempotent
      file:
        path: /etc/foo.conf
        state: touch
        mode: 0644
        modification_time: preserve
        access_time: preserve
      changed_when: >
        p.diff.before.state == "absent" or
        p.diff.before.mode|default("0644") != "0644"
    

    and a version that also corrects the owner and group and detects it as changed when it does correct these:

    - name: Touch again the same file, but dont change times this makes the task idempotent
      file:
        path: /etc/foo.conf
        state: touch
        state: touch
        mode: 0644
        owner: root
        group: root
        modification_time: preserve
        access_time: preserve
      register: p
      changed_when: >
        p.diff.before.state == "absent" or
        p.diff.before.mode|default("0644") != "0644" or
        p.diff.before.owner|default(0) != 0 or
        p.diff.before.group|default(0) != 0
    

提交回复
热议问题