Ansible 文本修改 Lineinfile


原文链接: Ansible 文本修改 Lineinfile
## credit: http://fabian-affolter.ch/blog/the-lineinfile-module-of-ansible/
--- 
- hosts: alpine_install
  user: root
 
  tasks:
#  - name: create a complete empty file
#    command: /usr/bin/touch /test/test.conf
# 创建新文件 
  - name: create a new file with lineinfile
    lineinfile: dest=/test/test.conf 
                regexp='^' line=''
                state=present
                create=True
# 添加新行                 
  - name: add a string to the new file
    lineinfile: dest=/test/test.conf
                regexp='^'
                line='Hello, World!'
                state=present
# 添加多行   
  - name: add a multiline string to the file and delete the string from before
  # Be aware, with the given regex the string will be added everytime the playbook runs 
    lineinfile: dest=/test/test.conf 
                regexp='^'
                line='#This is a comment\n#Another comment\n#Another comment, again\n#Again a comment\n#The last comment'
                state=present
 
  - name: add a single line, in this case the same as the comment but uncommented
    lineinfile: dest=/test/test.conf 
                regexp='^Another'
                insertafter='^#Another'
                line='Another comment, no longer a comment'
                state=present
 
  - name: remove the line '#Again a comment'
    lineinfile: dest=/test/test.conf 
                regexp='^#Again'
                state=absent
 
  - name: add a new string at the beginning of the file
    lineinfile: dest=/test/test.conf
                regexp='^This'
                insertbefore=BOF
                line='This is no longer a comment'
 
  - name: add a new string before the match
    lineinfile: dest=/test/test.conf 
                regexp='^Another'
                insertbefore='^#Another'
                line='Another comment, no longer'
 
  - name: add a new string at the end of the file
    lineinfile: dest=/test/test.conf 
                regexp=''
                insertafter=EOF
                line='The latest entry'
`