Kemungkinan Abaikan Kesalahan

Kemungkinan Abaikan Kesalahan



Saat mengonfigurasi tugas di perangkat host lain, kesalahan yang mungkin terjadi adalah kejadian umum. Mereka mewakili keadaan sistem yang unik dan mungkin signifikan. Meskipun demikian, mungkin ada beberapa kesalahan yang ingin kami hindari sehingga tugas juga akan dijalankan dan menampilkan hasilnya jika berhasil dijalankan. Pada artikel ini, kita akan berbicara tentang kesalahan yang mungkin terjadi dan cara mengabaikannya. Kami secara khusus mendemonstrasikan teknik untuk menekan dan mengabaikan kegagalan dengan Ansible.

Berbeda dengan perbaikan kesalahan, menghindari kegagalan memerlukan melanjutkan tugas-tugas sebanyak aktivitas di buku pedoman Ansible tidak terpengaruh. Alat yang memungkinkan mengeluarkan pesan peringatan saat tidak dapat menyelesaikan tugas atau playbook saat men-debug tugas. Ada beberapa penyebab, tetapi terserah kita untuk mengidentifikasinya dan mencari solusinya. Sayangnya, tidak semua kesalahan bisa diperbaiki. Anda dapat memilih untuk mulai mengabaikan kesalahan jika Anda tidak menginginkannya atau jika Anda tidak dapat mengatasi masalah tersebut.







Sebagian besar pengelola kontrol di Ansible menggunakan strategi ini saat terhubung dengan host target dalam skenario dunia nyata. Kemungkinan default untuk menghentikan aktivitas di perangkat target dan melanjutkan aktivitas di beberapa server lain setiap kali mengembalikan hasil bukan nol dari pernyataan atau error dari paket. Meskipun, ada situasi tertentu di mana Anda mungkin ingin bertindak berbeda. Hasil yang dikembalikan yang bukan nol terkadang menunjukkan kemajuan. Seringkali, Anda mungkin ingin pemrosesan berhenti di satu server sehingga berhenti di semua host.



Cara Mengabaikan Kesalahan dalam Ansible

Di Ansible, berbagai cara digunakan untuk menjalankan tugas pedoman jika menunjukkan kegagalan tugas. Berikut ini adalah berbagai cara yang akan membantu menjalankan tugas meskipun Ansible menampilkan kesalahan:



1. Menggunakan Perintah Ignore_Errors=True





Meskipun tugas terus gagal, playbook terus dijalankan jika Anda menetapkan perintah ignore_errors=true di bagian bawah aktivitas. Meskipun peduli dengan penyelesaian tugas atau kegagalan, ia tetap melakukan aktivitas selanjutnya. Jika entah bagaimana aktivitas tersebut tidak berhasil, ia akan beralih ke aktivitas berikutnya. Jika aktivitas berhasil, maka proses selesai setelah itu.

2. Memanfaatkan Mode Periksa di Ansible



Memanfaatkan variabel khusus Boolean, mode pemeriksaan Ansible, yang didefinisikan ke True setelah Ansible berada dalam metode pemeriksaan untuk mem-bypass tugas atau mengabaikan kegagalan pada tugas setiap kali versi metode pemeriksaan Ansible digunakan.

3. Memanfaatkan Failed=When Command di Ansible Playbook

Di Ansible, kita juga dapat menggunakan kondisi failed_when untuk menentukan 'kegagalan' apa pun yang tersirat untuk setiap aktivitas. Mirip dengan semua pernyataan bersyarat yang mungkin, daftar banyak kriteria failed_when digabungkan dengan implisit. Jadi, tugas hanya gagal jika semua kondisi terpenuhi.

Prasyarat untuk Mengabaikan Kesalahan di Ansible

Alat konfigurasi Ansible harus memenuhi kriteria yang diperlukan untuk menyertakan contoh konkret:

  • Server utama yang memungkinkan atau kita dapat mengatakan server pengontrol diperlukan agar kita dapat mengonfigurasi perintah pada perangkat target.
  • Kami memerlukan host lokal agar kami dapat menghubungi mereka masing-masing untuk menggunakan berbagai cara mengabaikan kesalahan di perangkat lunak Ansible. Kami menggunakan host lokal dalam contoh ini sebagai server jarak jauh target selama durasi aktivitas.
  • Kami menulis buku pedoman, menjalankan perintah abaikan kesalahan yang mungkin, dan menggunakan perangkat pengontrol yang memungkinkan untuk melacak hasil pada host yang jauh.

Untuk membantu pelajar memahami prinsip memanfaatkan kesalahan abaikan dalam buku pedoman Ansible, mari terapkan contoh berikut:

Contoh: Memanfaatkan Perintah Ignore_Errors=True

Ini adalah contoh paling sederhana yang menggunakan Ansible untuk penerapan di mana kami menyertakan beberapa tugas di playbook dan menjalankan tugas menggunakan perintah abaikan kesalahan. Untuk melakukan ini, pertama-tama kita menulis kode berikut di terminal Ansible:

[ akar @ master mungkin ] # nano abaikan_kesalahan.yml

Setelah pembuatan dan peluncuran playbook ign_errors.yml, sekarang kita mulai memasukkan perintah di playbook. Pertama, kami menggunakan opsi 'hosts', meneruskan host yang disediakan sebagai 'localhost'. Kami memasukkan nilai “false” dalam argumen “kumpulkan fakta” ​​sehingga kami tidak dapat memperoleh informasi tambahan tentang host lokal saat menjalankan playbook.

Setelah itu, kami mulai membuat daftar setiap tugas yang ingin kami selesaikan di bawah opsi 'tugas'. Pada tugas pertama, kami menampilkan dokumen yang tidak ada di direktori Ansible. Pertama, kami melewati judul tugas yang ingin kami implementasikan. Kemudian, kami menggunakan opsi perintah dan menyimpan dokumen teks yang tidak ada dan menggunakan 'ls' sehingga kami dapat menjalankan perintah di tugas pertama. Setelah tugas pertama, kami menggunakan perintah ignore_errors=true sehingga jika tugas di atas pernyataan abaikan mengalami kegagalan, ia akan mengabaikan tugas tersebut dan berpindah ke tugas berikutnya dan menjalankannya.

Kami mencantumkan tugas lain yang digunakan. Jika tugas pertama gagal, alat Ansible harus menjalankan tugas berikutnya. Kemudian, kami menggunakan parameter debug untuk menjalankan tugas di playbook.

- host: localhost
kumpulkan_fakta: PALSU
tugas:
- nama: Daftar yang tidak ada mengajukan
memerintah: ls tidak ada.txt
abaikan_kesalahan: BENAR

- nama: melanjutkan tugas setelah gagal
men-debug:
pesan: 'Lanjutkan tugas setelah gagal'

Sekarang, kami membuat daftar tugas yang cukup untuk dijalankan dan memeriksa perintah abaikan kesalahan. Sekarang, kita menghentikan playbook dan kembali ke terminal utama. Setelah itu, kami menjalankan buku pedoman. Untuk itu, kami menggunakan pernyataan berikut:

[ akar @ master mungkin ] # buku pedoman yang mungkin diabaikan_errors.yml

Setelah menjalankan perintah yang disebutkan di atas, kami mendapatkan output berikut. Seperti yang Anda lihat, tugas pertama yang mencantumkan file yang tidak ada menunjukkan kegagalan. Namun tugas kedua berhasil dijalankan karena kita mengabaikan tugas pertama dengan memanfaatkan ignor_error=true di playbook.

Kesimpulan

Kami mempelajari apa arti kesalahan abaikan di Ansible. Kami membahas cara kerjanya di buku pedoman Ansible. Kami juga membahas berbagai cara mengabaikan kesalahan di Ansible saat menjalankan tugas. Kami menerapkan contoh sehingga setiap konsep jelas bagi pengguna.