Ansible文本操作实例
--- - name: demo1 change the xml file insert content before lineinfile: path: /appvol/ansible-test/test_lineinfile.xml state: present insertbefore: '</security-realms>' line: "{{ item }}" with_items: - ' <security-realm name="Security">' - ' <authentication>' - ' <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>' - ' </authentication>' - '</security-realm>' - name: demo2 change the xml file insert content after lineinfile: path: /appvol/ansible-test/test_lineinfile.xml state: present insertafter: '<http-listen name="default" >' line: "{{ item }}" with_items: - ' <https-listen name="default" >' - name: demo3 make sure the https port is lineinfile: path: /appvol/ansible-test/test_lineinfile.xml state: present regexp: '<socket-binding name="https"' line: ' <socket-binding name="https" port="8443"/>'
以上三个demo是最常见的anbible编辑文件的场景。
demo1: 在文本文件某个标记前添加一段内容,如果已经添加,第二次执行不会重复添加。
demo2: 在文本文件某个标记后添加一段内容,如果已经添加,第二次 执行不会重复添加。
demo3: 查找符合某个条件的行内容,如果查找到了确保他是什么样子 ,如果已经符合,不会重复修改。
refer to: 正则表达是在线检查工具 http://tool.oschina.net/regex/
refer to: ansible lineinfile https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html?highlight=lineinfile