Pendahuluan
Ansible adalah alat Infrastruktur sebagai Kode yang memungkinkan satu node kontrol memantau dan mengelola sejumlah besar host jarak jauh (server).
Ansible menggunakan buku pedoman untuk menentukan berbagai tugas yang harus dilakukan oleh host jarak jauh, termasuk memeriksa apakah ada file dan folder.
Tutorial ini membahas cara menggunakan stat
modul di Ansible untuk memeriksa apakah ada file dan folder di host jarak jauh.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042505194256.png)
Prasyarat
- Akses ke baris perintah / jendela terminal
- Ansible diinstal dan dikonfigurasi (lihat panduan kami tentang Menginstal Ansible di Windows dan Menginstal Ansible di Ubuntu)
Memeriksa apakah File Ada di Ansible
Cara termudah untuk memeriksa apakah ada file menggunakan Ansible adalah dengan stat
modul.
Tujuan dari stat
modul adalah untuk mengambil fakta tentang file dan folder dan merekamnya dalam register. Modul stat menggunakan sintaks berikut:
---
- name: Playbook name
hosts: all
tasks:
- name: Task name
stat:
path: [path to the file or directory you want to check]
register: register_name
...
Dimana:
stat:
Menyatakan bahwa kita menggunakan modul stat.path:
Mendeklarasikan jalur ke file atau folder yang ingin kita periksa.register:
Memberikan nama register tempat modul stat menyimpan detail file dan folder.
Salah satu nilai yang tercatat dalam register adalah exists
. Menggabungkan nilai ini dengan debug
modul memungkinkan Anda menampilkan pesan yang merinci apakah ada file atau folder:
- name: Task name
debug:
msg: "The file or directory exists"
when: register_name.stat.exists
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042505194259.png)
1. Dalam contoh buku pedoman, tugas pertama (Memeriksa apakah ada file ) menggunakan stat
modul untuk mengambil fakta tentang test.txt
file terletak di /home/example_folder pada host jarak jauh. Ini mencatat fakta-fakta ini dalam register yang disebut file_data
.
2. Tugas kedua (Laporkan jika ada file ) menggunakan debug
modul untuk menampilkan pesan. Ia memeriksa file_data
mendaftar dan menggunakan exists
nilai sebagai syarat untuk menampilkan pesan. Jika exists
nilainya benar , modul menampilkan pesan 'File atau direktori ada' .
3. Tugas ketiga (Laporkan file yang hilang ) melakukan hal yang sama, kecuali ia menampilkan pesan 'File atau direktori tidak ada' jika exists
nilainya salah .
Menjalankan playbook memberikan output berikut:
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042505194222.png)
Outputnya memberi tahu kita bahwa file tersebut sebenarnya tidak ada.
Jika Anda juga ingin memeriksa apakah file yang dimaksud adalah file biasa dan bukan folder, tambahkan isreg
nilai ke debug
kondisi modul:
- name: Task name
debug:
msg: "The file or directory exists"
when: register_name.stat.exists and register_name.stat.isreg
Memeriksa apakah Direktori Ada di Ansible
Menggunakan Ansible untuk memeriksa apakah ada direktori sama persis dengan memeriksa apakah ada file. Satu-satunya perbedaan adalah Anda menggunakan isdir
nilai untuk mengonfirmasi jalur ke direktori yang ditentukan:
- name: Task name
debug:
msg: "The file or directory exists"
when: register_name.stat.exists and register_name.stat.isdir
Menjalankan Tugas yang Mungkin Bergantung pada Apakah File dan Folder Ada
Ada kalanya Anda ingin menjalankan atau melewati tugas di buku pedoman Anda tergantung pada apakah ada file atau folder tertentu.
Misalnya, jika Anda memiliki buku pedoman yang dirancang untuk membuat file di setiap host jarak jauh, Anda ingin melewati host yang filenya sudah ada untuk menghindari duplikat.
Untuk melakukannya, gunakan detail file yang diambil dengan stat
modul dengan when
argumen untuk membuat kondisi untuk menjalankan tugas:
---
- name: Playbook name
hosts: all
tasks:
- name: Task name
stat:
path: [path to the file or directory you want to check]
register: register_name
- name: Task name 2
file:
path: [path to the file you want to create]
state: touch
when: not register_name.stat.exists
...
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042505194286.png)
1. Dalam buku pedoman di atas, tugas pertama (Memeriksa apakah ada file ) menggunakan stat
modul untuk mengambil detail test.txt
file terletak di example_folder pada host jarak jauh.
2. Tugas kedua (Buat file jika belum ada ) dimulai dengan memeriksa exists
nilai dalam register. Jika nilainya benar , tugas dilewati dan buku pedoman berakhir. Jika nilainya salah , tugas dijalankan dan membuat file baru bernama test.txt
.