使用Ansible替换文件的全部内容

时间:2019-11-11 10:26:56

标签: scripting ansible yaml

我希望能够使用Ansible剧本替换文件的全部内容。

我已经写了这段代码,但是通配符的使用似乎是错误的方法。

---
  - hosts: my_hosts
    tasks:
     - name: Replace the content of my file
       lineinfile:
         path: /home/user-ansible/test/conf
         regexp: "*"
         line: "{{ lookup('file', '/home/ansible/config/conf') }}"

1 个答案:

答案 0 :(得分:1)

要替换目标服务器(dest)上文件的内容并确保其始终与源文件(src)对齐,请使用copy module

---
- name: Demo play to copy file
  hosts: my_hosts

  tasks:

   - name: Replace the content of my file
     copy:
       src: /home/user-ansible/test/conf
       dest: /home/ansible/config/conf

附加说明:您发布的剧本中存在Yaml缩进问题,将来可能会引起问题。请take Y minutes to learn yaml,并注意缩进和换行符。在发布之前,您可以使用yamllintansible-lint来验证您的剧本