ansible lineinfile使用
·
lineinfile用于文件修改,具体用例如下:
1:修改文件内容
- name: seline modify enforcing
lineinfile:
dest: /etc/selinux/config ###需要修改的文件
regexp: '^SELINUX=' ###匹配的行
line: 'SELINUX=enforcing' ###修改的内容
也可以通过with_items定义多个变量,如下:
- name: set umask to 027
lineinfile:
path: /etc/profile
line: "{{ item.line }}"
regexp: "{{ item.regexp }}"
with_items:
- {regexp: "^umask", line: "umask 027"}
- {regexp: "^HISTFILESIZE=", line: "HISTFILESIZE=5"}
- {regexp: "^HISTSIZE=", line: "HISTSIZE=5"}
2:在匹配的内容前加一行
- name: httpd.conf modify 8080
lineinfile:
dest: /opt/playbook/test/http.conf
regexp: '^Listen'
insertbefore: '^#Port' ###匹配的内容之前 insertafter为之后
line: 'Listen 8080'
tags:
- http8080
3:删除某一行
- name: delete 192.168.1.1
lineinfile:
dest: /opt/playbook/test/hosts
state: absent
regexp: '^192\.'
tags:
- delete19
4:文件存在就添加一行
- name: add a line
lineinfile:
dest: /opt/playbook/test/hosts
line: '192.168.1.2 foo.lab.net foo'
tags:
- add_a_line
5:匹配到,引用line这一行作为替换。没有匹配到,则完全引用line这一行作为添加
- name: Fully quoted a line
lineinfile:
dest: /opt/playbook/test/testfile
state: present
regexp: '^%wheel'
line: '%wheel ALL=(ALL) NOPASSWD: ALL'
tags:
- testfile
6:关于参数backrefs,backup使用。
backrefs为no时,如果没有匹配,则添加一行line。如果匹配了,则把匹配内容替被换为line内容。
backrefs为yes时,如果没有匹配,则文件保持不变。如果匹配了,把匹配内容替被换为line内容。
backup为no时,没有匹配,则添加。如果匹配了,则替换
backup为yes时,没有匹配,添加,如果匹配了,则替换
更多推荐



所有评论(0)