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.
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
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:
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
...
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 .