Untuk melakukan tugas automatik pada host jauh dengan Ansible, perlu mengisi dan bekerja dengan pemboleh ubah tertentu, seperti yang diharapkan. Sebagai contoh, jenis tugas ini diperlukan untuk meletakkan host jauh dalam talian, membenarkan masuk dan hak pengguna, dan mengatur persekitaran Python.
Adalah mungkin untuk SSH menjadi host jauh dan periksa sama ada host memenuhi semua kriteria. Namun, sebagai alat automasi, Ansible menyediakan modul yang membolehkan anda melakukan tugas yang membosankan dan memakan masa ini dalam satu baris perintah.
Tutorial ini menunjukkan kepada anda cara menggunakan modul ping terbina dalam Ansible untuk melakukan pelbagai pemboleh ubah set pada host jauh. Permintaan ping Ansible adalah alat mudah namun berguna yang boleh anda gunakan untuk menguji ketersediaan dan kepraktisan host jarak jauh.
Kami sekarang akan melihat lebih dekat bagaimana ping Ansible berfungsi.
NOTA: Bahagian ini agak teori. Sekiranya semua yang anda perlukan adalah bahagian teknikal artikel, maka anda boleh melangkau bahagian ini. Walaupun begitu, kami mengesyorkan membaca bahagian ini, kerana ia memberikan beberapa pandangan dan maklumat berguna mengenai modul ping.
Dengan itu, kita akan terus memperkenalkan modul ping.
Mengenai Modul ping Ansible
Permintaan ping Ansible memeriksa host jauh. Modul ini secara khusus memeriksa:
- Sama ada host jarak jauh sudah siap dan boleh diakses.
- Adakah persekitaran Python berjaya menjalankan buku permainan yang diperlukan.
- Log masuk dan keistimewaan pengguna.
Setelah permintaan ping dikirim ke host jauh, modul mengembalikan nilai yang menunjukkan sama ada ping berjaya. Secara lalai, modul ping mengembalikan rentetan 'pong' pada kejayaan, dan pengecualian pada kegagalan (jika ditentukan).
PETUA PRO: Untuk memastikan bahawa buku main Ansible anda pada host jarak jauh sasaran tidak gagal, gunakan modul ping untuk memeriksa sama ada syaratnya dipenuhi, dan hanya menjalankan tugas jika output berjaya diperoleh.
Ciri-ciri Modul ping Ansible
Modul ping agak mudah, dan berikut adalah senarai ciri yang disediakan oleh modul ini:
- Bukan ping ICMP; sebaliknya, ia adalah modul kecil yang memerlukan persekitaran Python yang sah pada host jauh.
- Host jauh Windows harus menggunakan modul win_ping sebagai gantinya.
- Menyediakan modul net_ping untuk peranti rangkaian.
- Hanya menerima satu parameter untuk meningkatkan pengecualian.
- Digunakan secara lalai ketika memanggil perintah ansible di direktori / usr / bin / ansible untuk mengesahkan kebenaran masuk dan persekitaran Python yang sah.
- Mengembalikan rentetan 'pong' pada kejayaan.
Cara Menggunakan Modul ping Ansible
Kita sekarang akan melihat beberapa contoh yang menggunakan modul ping Ansible.
Menggunakan Perintah ping AD HOC
Cara paling mudah untuk menjalankan modul ping Ansible adalah dengan menjalankan perintah AD HOC ringkas di terminal.
Perintah AD HOC adalah seperti berikut:
ansible all -m ping -vPerintah di atas dimulakan dengan memanggil Ansible, diikuti dengan corak khusus host. Dalam kes ini, kami mahu melakukan ping kepada 'semua' host. Bahagian seterusnya, '-m,' menentukan modul yang ingin kita gunakan. The '-v' bermaksud verbose.
Pada kejayaan, anda akan mendapat output seperti yang ditunjukkan di bawah:
Menggunakan / etc / ansible / ansible.cfg sebagai fail konfigurasi 35.222.210.12| KEJAYAAN =>
"ansible_facts":
"found_interpreter_python": "/ usr / bin / python",
"berubah": salah,
"ping": "pong"
Sekiranya host jauh tidak tersedia (mungkin mereka berada di luar talian), anda akan memperoleh output seperti yang ditunjukkan di bawah:
Menggunakan / etc / ansible / ansible.cfg sebagai fail konfigurasi 35.222.210.12| TIDAK TERDAPAT! =>
"berubah": salah,
"msg": "Gagal menyambung ke hos melalui ssh: ssh: sambungkan ke hos 35.222.210.12 port 22: Sambungan tamat masa ",
"tidak dapat dicapai": benar
Menggunakan Modul ping dalam Playbook
Anda juga boleh menggunakan modul ping di dalam buku main. Dalam kebanyakan kes, anda tidak akan membina buku main yang hanya melakukan permintaan ping. Walau bagaimanapun, anda boleh menyelesaikan semua tugas di dalam syarat permintaan ping.
Pertimbangkan buku panduan ringkas berikut:
- tuan rumah: semuamenjadi: ya
tugas:
- ping
Anda mungkin menyedari bahawa dalam buku main di atas, saya memasukkan arahan 'menjadi'. Ini bukan syarat, tetapi saya menghadapi kes di mana modul ping gagal untuk pengguna standard. Anda kini boleh menjalankan buku main dan memeriksa sama ada pelayan tuan rumah memenuhi syarat untuk respons 'pong' yang berjaya.
ping buku main-ansible.ymlSekiranya ping tidak berjaya, anda akan mendapat ralat 'tidak terjangkau' berikut:
maut: [35.222.210.12]: TIDAK TERDAPAT! => "diubah": false, "msg": "Gagal menyambung ke hos melalui ssh: ssh: sambungkan ke hos 35.222.210.12 port 22: Sambungan tamat masa "," tidak dapat dicapai ": trueMenggunakan Pengecualian kenaikan dengan Modul ping
Anda juga boleh menentukan data sebagai kemalangan untuk menyebabkan pengecualian. Ini mengubah pulangan lalai dari 'pong' menjadi 'crash.'
Pertimbangkan buku main berikut:
- tuan rumah: semuamenjadi: ya
tugas:
- ping:
kemalangan: data
Menjalankan buku main dengan pengecualian harus mengembalikan nilai berikut:
ansible-playbook ping_kecuali.yml
Kesimpulannya
Tutorial ini menunjukkan kepada anda pelbagai fungsi modul ping. Walaupun modul ini tidak mengandungi parameter kompleks seperti kebanyakan modul Ansible, modul ini masih mengandungi kemampuan yang kuat. Sebagai contoh, anda boleh menggunakan modul ping untuk memeriksa sama ada ralat disebabkan oleh persekitaran Python yang hilang dan membuat tugas untuk memasang persekitaran yang diperlukan pada host jauh.