lineinfile
## DOCUMENTATION
online help:
offline help:
## EXAMPLE 1
## PLAYBOOK
---
- name: lineinfile module example 1
hosts: all
become: True
gather_facts: no
tasks:
#
- name: Debug (1), check file before add
shell: cat /home/ansible/hello.txt
register: results1_before
- debug: var=results1_before.stdout_lines
- name: (1) Add a line to a file if the file does not exist, without passing regexp
lineinfile:
path: /home/ansible/hello.txt
line: "Welcome to our website!"
create: yes
- name: Debug (1), check file after add
shell: cat /home/ansible/hello.txt
register: results1_after
- debug: var=results1_after.stdout_lines
#
- name: Debug (2), check file before update
shell: cat /home/ansible/hello.txt
register: results2_before
- debug: var=results2_before.stdout_lines
- name: (2) update a line with specific string pattern (using regexp)
lineinfile:
path: /home/ansible/hello.txt
regexp: '^Hello$'
line: Hello, world
- name: Debug (2), check file after update
shell: cat /home/ansible/hello.txt
register: results2_after
- debug: var=results2_after.stdout_lines
#
- name: Debug (3), check file before remove
shell: cat /home/ansible/hello.txt
register: results3_before
- debug: var=results3_before.stdout_lines
- name: (3) remove a line with specific string pattern (using regexp)
lineinfile:
path: /home/ansible/hello.txt
regexp: '^Welcome to our.*$'
state: absent
- name: Debug (3), check file after remove
shell: cat /home/ansible/hello.txt
register: results3_after
- debug: var=results3_after.stdout_lines
#
- name: Debug (4), check file before insert before & after
shell: cat /home/ansible/hostnames.txt
register: results4_before
- debug: var=results4_before.stdout_lines
- name: (4a) Insert line before
lineinfile:
path: /home/ansible/hostnames.txt
insertbefore: '^server5'
line: server4
- name: (4b) Insert line after
lineinfile:
path: /home/ansible/hostnames.txt
insertafter: '^server1'
line: server2
- name: Debug (4), check file after remove
shell: cat /home/ansible/hostnames.txt
register: results4_after
- debug: var=results4_after.stdout_lines
## OUTPUT
PLAY [lineinfile module example 1] *****************************************************************
TASK [Debug (1), check file before add] ************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results1_before.stdout_lines": [
"Hello"
]
}
ok: [ubuntu20_int] => {
"results1_before.stdout_lines": [
"Hello"
]
}
TASK [(1) Add a line to a file if the file does not exist, without passing regexp] *****************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Debug (1), check file after add] *************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results1_after.stdout_lines": [
"Hello",
"Welcome to our website!"
]
}
ok: [ubuntu20_int] => {
"results1_after.stdout_lines": [
"Hello",
"Welcome to our website!"
]
}
TASK [Debug (2), check file before update] *********************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results2_before.stdout_lines": [
"Hello",
"Welcome to our website!"
]
}
ok: [ubuntu20_int] => {
"results2_before.stdout_lines": [
"Hello",
"Welcome to our website!"
]
}
TASK [(2) update a line with specific string pattern (using regexp)] *******************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Debug (2), check file after update] **********************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results2_after.stdout_lines": [
"Hello, world",
"Welcome to our website!"
]
}
ok: [ubuntu20_int] => {
"results2_after.stdout_lines": [
"Hello, world",
"Welcome to our website!"
]
}
TASK [Debug (3), check file before remove] *********************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results3_before.stdout_lines": [
"Hello, world",
"Welcome to our website!"
]
}
ok: [ubuntu20_int] => {
"results3_before.stdout_lines": [
"Hello, world",
"Welcome to our website!"
]
}
TASK [(3) remove a line with specific string pattern (using regexp)] *******************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Debug (3), check file after remove] **********************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results3_after.stdout_lines": [
"Hello, world"
]
}
ok: [ubuntu20_int] => {
"results3_after.stdout_lines": [
"Hello, world"
]
}
TASK [Debug (4), check file before insert before & after] ******************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results4_before.stdout_lines": [
"server1",
"server3",
"server5"
]
}
ok: [ubuntu20_int] => {
"results4_before.stdout_lines": [
"server1",
"server3",
"server5"
]
}
TASK [(4a) Insert line before] *********************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [(4b) Insert line after] **********************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Debug (4), check file after remove] **********************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ***************************************************************************************
ok: [debian11_int] => {
"results4_after.stdout_lines": [
"server1",
"server2",
"server3",
"server4",
"server5"
]
}
ok: [ubuntu20_int] => {
"results4_after.stdout_lines": [
"server1",
"server2",
"server3",
"server4",
"server5"
]
}
PLAY RECAP *****************************************************************************************
debian11_int : ok=21 changed=13 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ubuntu20_int : ok=21 changed=13 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|