file
## DOCUMENTATION
online help: https://docs.ansible.com/ansible-core/2.11/collections/ansible/builtin/file_module.html
offline help: ansible-doc file
## EXAMPLE 1
## PLAYBOOK
---
- name: file module example 1
hosts: all
become: True
gather_facts: no
tasks:
- name: (1) Change file ownership and permission using numeric modes
file:
path: /home/ansible/hello.txt
owner: root
group: root
mode: '0644'
- name: Verify changes for (1)
shell: ls -ldh /home/ansible/hello.txt
register: results1
- debug: var=results1.stdout_lines
#
- name: (2) Change permission using symbolic modes
file:
path: /home/ansible/hello.txt
mode: u=rw,g=r,o=r
- name: Verify changes for (2)
shell: ls -ldh /home/ansible/hello.txt
register: results2
- debug: var=results2.stdout_lines
#
- name: (3) Change permission by adding, removing modes
file:
path: /home/ansible/hello.txt
mode: u+rw,g+w,o-r
- name: Verify changes for (3)
shell: ls -ldh /home/ansible/hello*.txt
register: results3
- debug: var=results3.stdout_lines
#
- name: (4) Create symbolic link
file:
src: /home/ansible/hello.txt
dest: /home/ansible/hello_symlink.txt
owner: ansible
group: ansible
state: link
- name: Verify changes for (4)
shell: ls -ldh /home/ansible/hello*.txt
register: results4
- debug: var=results4.stdout_lines
#
- name: (5) Create directory if does not exist
file:
path: /home/ansible/welcome
state: directory
mode: '0755'
- name: Verify changes for (5)
shell: ls -ldh /home/ansible/welcome
register: results5
- debug: var=results5.stdout_lines
#
- name: (6) Change directory ownership recursively
file:
path: /home/ansible/welcome
state: directory
recurse: yes
group: ansible
owner: ansible
- name: Verify changes for (6)
shell: ls -laRh /home/ansible/welcome
register: results6
- debug: var=results6.stdout_lines
#
- name: (7) Change file modification time and access time
file:
path: /home/ansible/hello.txt
state: file
#modification_time: '{{ "%Y%m%d%H%M.%S" | strftime(stat_var.stat.atime) }}'
modification_time: '202110262149.00'
access_time: now
- name: Verify changes for (7)
shell: ls -lah /home/ansible/hello.txt;ls -luh /home/ansible/hello.txt
register: results7
- debug: var=results7.stdout_lines
#
- name: (8) Delete a directory recursively
file:
path: /home/ansible/welcome
state: absent
- name: Verify changes for (8)
stat:
path: /home/ansible/welcome
register: result8_dir
- debug: var=result8_dir.stat.exists
#
- name: (9) Delete a file
file:
path: /home/ansible/hello.txt
state: absent
- name: Verify changes for (9)
stat:
path: /home/ansible/hello.txt
register: result9_file
- debug: var=result9_file.stat.exists
## OUTPUT
PLAY [file module example 1] ****************************************************************************************************************
TASK [(1) Change file ownership and permission using numeric modes] *************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [Verify changes for (1)] ***************************************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ********************************************************************************************************************************
ok: [ubuntu20_int] => {
"results1.stdout_lines": [
"-rw-r--r-- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
ok: [debian11_int] => {
"results1.stdout_lines": [
"-rw-r--r-- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
TASK [(2) Change permission using symbolic modes] *******************************************************************************************
ok: [ubuntu20_int]
ok: [debian11_int]
TASK [Verify changes for (2)] ***************************************************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [debug] ********************************************************************************************************************************
ok: [ubuntu20_int] => {
"results2.stdout_lines": [
"-rw-r--r-- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
ok: [debian11_int] => {
"results2.stdout_lines": [
"-rw-r--r-- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
TASK [(3) Change permission by adding, removing modes] **************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (3)] ***************************************************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [debug] ********************************************************************************************************************************
ok: [debian11_int] => {
"results3.stdout_lines": [
"lrwxrwxrwx 1 root root 23 Oct 26 21:30 /home/ansible/hello_symlink.txt -> /home/ansible/hello.txt",
"-rw-rw---- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
ok: [ubuntu20_int] => {
"results3.stdout_lines": [
"lrwxrwxrwx 1 root root 23 Oct 26 21:30 /home/ansible/hello_symlink.txt -> /home/ansible/hello.txt",
"-rw-rw---- 1 root root 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
TASK [(4) Create symbolic link] *************************************************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [Verify changes for (4)] ***************************************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ********************************************************************************************************************************
ok: [ubuntu20_int] => {
"results4.stdout_lines": [
"lrwxrwxrwx 1 root root 23 Oct 26 21:30 /home/ansible/hello_symlink.txt -> /home/ansible/hello.txt",
"-rw-rw---- 1 ansible ansible 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
ok: [debian11_int] => {
"results4.stdout_lines": [
"lrwxrwxrwx 1 root root 23 Oct 26 21:30 /home/ansible/hello_symlink.txt -> /home/ansible/hello.txt",
"-rw-rw---- 1 ansible ansible 6 Oct 26 22:50 /home/ansible/hello.txt"
]
}
TASK [(5) Create directory if does not exist] ***********************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (5)] ***************************************************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [debug] ********************************************************************************************************************************
ok: [debian11_int] => {
"results5.stdout_lines": [
"drwxr-xr-x 2 root root 4.0K Oct 26 22:51 /home/ansible/welcome"
]
}
ok: [ubuntu20_int] => {
"results5.stdout_lines": [
"drwxr-xr-x 2 root root 4.0K Oct 26 22:51 /home/ansible/welcome"
]
}
TASK [(6) Change directory ownership recursively] *******************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (6)] ***************************************************************************************************************
changed: [debian11_int]
changed: [ubuntu20_int]
TASK [debug] ********************************************************************************************************************************
ok: [debian11_int] => {
"results6.stdout_lines": [
"/home/ansible/welcome:",
"total 8.0K",
"drwxr-xr-x 2 ansible ansible 4.0K Oct 26 22:51 .",
"drwxr-xr-x 8 ansible ansible 4.0K Oct 26 22:51 .."
]
}
ok: [ubuntu20_int] => {
"results6.stdout_lines": [
"/home/ansible/welcome:",
"total 8.0K",
"drwxr-xr-x 2 ansible ansible 4.0K Oct 26 22:51 .",
"drwxr-xr-x 8 ansible ansible 4.0K Oct 26 22:51 .."
]
}
TASK [(7) Change file modification time and access time] ************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (7)] ***************************************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [debug] ********************************************************************************************************************************
ok: [debian11_int] => {
"results7.stdout_lines": [
"-rw-rw---- 1 ansible ansible 6 Oct 26 21:49 /home/ansible/hello.txt",
"-rw-rw---- 1 ansible ansible 6 Oct 26 22:51 /home/ansible/hello.txt"
]
}
ok: [ubuntu20_int] => {
"results7.stdout_lines": [
"-rw-rw---- 1 ansible ansible 6 Oct 26 21:49 /home/ansible/hello.txt",
"-rw-rw---- 1 ansible ansible 6 Oct 26 22:51 /home/ansible/hello.txt"
]
}
TASK [(8) Delete a directory recursively] ***************************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (8)] ***************************************************************************************************************
ok: [ubuntu20_int]
ok: [debian11_int]
TASK [debug] ********************************************************************************************************************************
ok: [ubuntu20_int] => {
"result8_dir.stat.exists": false
}
ok: [debian11_int] => {
"result8_dir.stat.exists": false
}
TASK [(9) Delete a file] ********************************************************************************************************************
changed: [ubuntu20_int]
changed: [debian11_int]
TASK [Verify changes for (9)] ***************************************************************************************************************
ok: [ubuntu20_int]
ok: [debian11_int]
TASK [debug] ********************************************************************************************************************************
ok: [ubuntu20_int] => {
"result9_file.stat.exists": false
}
ok: [debian11_int] => {
"result9_file.stat.exists": false
}
PLAY RECAP **********************************************************************************************************************************
debian11_int : ok=27 changed=15 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ubuntu20_int : ok=27 changed=15 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Please enable JavaScript to view the comments powered by Disqus.