Ansible Abaikan Ralat

Ansible Abaikan Ralat



Semasa mengkonfigurasi tugas pada peranti hos lain, ralat Ansible adalah kejadian biasa. Mereka mewakili keadaan sistem yang unik dan mungkin penting. Walaupun begitu, mungkin terdapat beberapa ralat yang ingin kita elakkan supaya tugasan juga akan dilaksanakan dan menunjukkan output jika ia berjaya dilaksanakan. Dalam artikel ini, kita akan bercakap tentang ralat Ansible dan cara mengabaikannya. Kami secara khusus menunjukkan teknik untuk menyekat dan mengabaikan kegagalan dengan Ansible.

Berbeza dengan pembetulan ralat, mengelakkan kegagalan memerlukan meneruskan tugasan sama seperti aktiviti dalam buku main Ansible tidak terjejas. Alat ansible mengeluarkan mesej amaran apabila ia tidak dapat menyelesaikan tugasan atau buku main semasa menyahpepijat tugas. Terdapat beberapa punca, tetapi terpulang kepada kita untuk mengenal pasti punca tersebut dan mencari penyelesaian. Malangnya, tidak semua ralat boleh diperbaiki. Anda boleh memilih untuk mula mengabaikan ralat jika anda tidak mahu atau jika anda tidak dapat menyelesaikan isu tersebut.







Majoriti mengawal pengurus dalam Ansible menggunakan strategi ini semasa berhubung dengan hos sasaran dalam senario dunia sebenar. Ansible lalai untuk menghentikan aktiviti pada peranti sasaran dan aktiviti berterusan pada beberapa pelayan lain apabila ia mengembalikan hasil bukan sifar yang dikembalikan daripada pernyataan atau ralat daripada pakej. Walaupun, terdapat situasi tertentu di mana anda mungkin mahu bertindak secara berbeza. Hasil yang dikembalikan yang bukan sifar sekali-sekala menandakan kemajuan. Selalunya, anda mungkin mahu pemprosesan dihentikan pada satu pelayan supaya ia berhenti pada semua hos.



Cara Mengabaikan Kesilapan dalam Ansible

Dalam Ansible, cara berbeza digunakan untuk menjalankan tugasan buku permainan jika ia menunjukkan kegagalan tugas. Berikut ialah cara berbeza yang akan membantu melaksanakan tugas walaupun Ansible menunjukkan ralat:



1. Menggunakan Ignore_Errors=True Command





Walaupun tugasan terus gagal, buku main terus dilaksanakan jika anda menentukan arahan ignore_errors=true di bahagian bawah aktiviti. Walaupun mengambil berat tentang penyempurnaan atau kegagalan tugas, ia tetap menjalankan aktiviti seterusnya. Jika entah bagaimana aktiviti itu tidak berjaya, ia akan diteruskan ke aktiviti seterusnya. Jika aktiviti itu berjaya, ia melengkapkan proses selepas itu.

2. Menggunakan Mod Semak dalam Ansible



Gunakan pembolehubah khas Boolean, mod semakan Ansible, yang ditakrifkan kepada Benar apabila Ansible berada dalam kaedah semakan untuk memintas tugas atau mengabaikan kegagalan pada tugasan apabila versi kaedah semakan Ansible digunakan.

3. Menggunakan Perintah Gagal=Apabila dalam Buku Main Ansible

Dalam Ansible, kita juga boleh menggunakan failed_when bersyarat untuk menentukan apa sahaja 'kegagalan' yang tersirat untuk setiap aktiviti. Sama seperti semua pernyataan bersyarat Ansible, senarai banyak kriteria gagal_apabila digabungkan dengan tersirat. Jadi, tugas itu hanya gagal jika semua syarat dipenuhi.

Prasyarat untuk Mengabaikan Ralat dalam Ansible

Alat konfigurasi Ansible mesti mematuhi kriteria yang diperlukan untuk memasukkan contoh konkrit:

  • Pelayan utama Ansible atau kita boleh katakan pelayan mengawal adalah perlu supaya kita boleh mengkonfigurasi arahan pada peranti sasaran.
  • Kami perlu mempunyai hos tempatan supaya kami boleh menghubungi setiap daripada mereka untuk menggunakan cara yang berbeza untuk mengabaikan ralat dalam perisian Ansible. Kami menggunakan hos tempatan dalam hal ini sebagai pelayan jauh sasaran untuk tempoh aktiviti.
  • Kami menulis buku permainan, menjalankan perintah ralat abaikan Ansible dan menggunakan peranti pengawal ansible untuk menjejaki hasil pada hos yang jauh.

Untuk membantu pelajar memahami prinsip menggunakan ralat abaikan dalam buku main Ansible, mari kita laksanakan contoh berikut:

Contoh: Menggunakan Ignore_Errors=True Command

Ini ialah contoh paling mudah yang menggunakan Ansible untuk pelaksanaan di mana kami memasukkan beberapa tugasan dalam buku main dan melaksanakan tugasan menggunakan perintah ralat abaikan. Untuk melakukan ini, kami mula-mula menulis kod berikut dalam terminal Ansible:

[ akar @ tuan ansible ] # nano ignore_errors.yml

Selepas penciptaan dan pelancaran buku permainan ignore_errors.yml, kami kini mula memasukkan arahan dalam buku permainan. Pertama, kami menggunakan pilihan 'hos', menghantar hos yang dibekalkan sebagai 'host tempatan'. Kami memasukkan nilai 'palsu' dalam hujah 'kumpul fakta' supaya kami tidak akan dapat mendapatkan maklumat tambahan tentang hos tempatan apabila kami menjalankan buku main.

Selepas itu, kami mula menyenaraikan setiap tugasan yang ingin kami selesaikan di bawah pilihan 'tugas'. Dalam tugasan pertama, kami memaparkan dokumen yang tidak wujud dalam direktori Ansible. Pertama, kita lulus tajuk tugasan yang ingin kita laksanakan. Kemudian, kami menggunakan pilihan arahan dan menyimpan dokumen teks yang tidak wujud dan menggunakan 'ls' supaya kami boleh melaksanakan arahan dalam tugas pertama. Selepas tugasan pertama, kami menggunakan arahan ignore_errors=true supaya jika tugas di atas pernyataan abaikan mengalami kegagalan, ia mengabaikan tugasan dan beralih ke tugas seterusnya dan melaksanakannya.

Kami menyenaraikan tugasan lain yang digunakan. Jika tugas pertama gagal, alat Ansible mesti melaksanakan tugas seterusnya. Kemudian, kami menggunakan parameter nyahpepijat untuk menjalankan tugas dalam buku main.

- hos: localhost
kumpulkan_fakta: salah
tugasan:
- nama: Senaraikan yang tidak wujud fail
perintah: ls tidak wujud.txt
ignore_errors: benar

- nama: teruskan tugas setelah gagal
nyahpepijat:
msg: 'Teruskan tugas selepas kegagalan'

Sekarang, kami menyenaraikan tugas yang mencukupi untuk dilaksanakan dan menyemak arahan ralat abaikan. Sekarang, kami menamatkan buku main dan kembali ke terminal utama. Selepas itu, kami menjalankan buku permainan. Untuk itu, kami menggunakan pernyataan berikut:

[ akar @ tuan ansible ] # ansible-playbook ignore_errors.yml

Selepas melaksanakan arahan yang disebutkan di atas, kami mendapat output berikut. Seperti yang anda lihat, tugas pertama yang menyenaraikan fail yang tidak wujud menunjukkan kegagalan. Tetapi tugas kedua berjaya dilaksanakan kerana kami mengabaikan tugas pertama dengan menggunakan ignore_error=true dalam buku permainan.

Kesimpulan

Kami mempelajari maksud ralat abaikan dalam Ansible. Kami membincangkan cara ia berfungsi dalam buku main Ansible. Kami juga membincangkan cara berbeza untuk mengabaikan ralat dalam Ansible semasa melaksanakan tugas. Kami melaksanakan contoh supaya setiap konsep jelas untuk pengguna.