Cara Menggunakan Tag di Ansible

Cara Menggunakan Tag Di Ansible



Drama, peran, dan tugas adalah struktur yang memungkinkan dan struktur yang memungkinkan ini berisi atribut penting yang disebut tag di Ansible. Setiap kali kami meluncurkan buku pedoman di Ansible, Anda dapat menggunakan perintah -tags dan –skip tag sehingga kami hanya dapat menjalankan serangkaian tugas, permainan, dan peran tertentu. Jika kita memiliki playbook yang berisi begitu banyak tugas, tetapi kita tidak ingin menjalankan semua tugas dari playbook tersebut, alih-alih menjalankan keseluruhan playbook, kita hanya akan menjalankan beberapa tugas dengan menggunakan perintah tag di playbook Ansible.

Kami akan membahas tag dalam topik ini, yang berfungsi sebagai salah satu aspek terpenting dari Ansible. Kami akan mencoba menjelaskan apa itu tag dan bagaimana tag beroperasi di Ansible karena ini adalah fitur yang membingungkan dari platform Ansible.







Misalnya, buku pedoman mungkin berisi tiga tanggung jawab: memasang modul, mengonfigurasinya, dan memeriksa status modul yang diterapkan, seperti apakah layanan sedang berjalan dan dapat diakses. Karena kami hanya perlu melihat status modul di beberapa mesin jarak jauh, kami menggunakan tag Ansible dalam situasi ini daripada menjalankan semua tugas di playbook. Ini memungkinkan kami menjalankan operasi tertentu secara eksklusif, memungkinkan kami mengurangi waktu pengoperasian dengan menyimpan semua aktivitas terkait dalam satu pedoman.



Prasyarat Penggunaan Tag di Ansible Playbook

Untuk menempatkan contoh-contoh praktis dalam perangkat lunak yang memungkinkan, kita harus memenuhi persyaratan berikut.



Server pengontrol yang memungkinkan harus diperlukan agar dapat membuat perubahan. Untuk memanfaatkan parameter tag dalam perangkat lunak Ansible, kami memerlukan host lokal untuk berkomunikasi dengannya. Dalam hal ini, kami menggunakan host lokal selama eksekusi sebagai server jarak jauh target. Kami akan membuat buku pedoman, menjalankan perintah tag yang memungkinkan, dan memantau hasilnya di host jarak jauh dari perangkat pengontrol yang memungkinkan.





Kami akan menggunakan skenario yang berbeda untuk memeriksa beberapa tag Ansible sehingga pelajar dapat dengan mudah memahami konsep tag dalam buku pedoman Ansible.

Contoh 01: Mengakses Satu Tugas di Ansible Playbook

Kami akan mengimplementasikan di Ansible dengan menyediakan banyak tugas di buku pedoman dan kemudian kami hanya akan mengakses satu tugas dengan memanfaatkan tag di dalamnya. Untuk melakukannya, pertama-tama kita akan membuat playbook dengan menulis perintah berikut:



[root@master memungkinkan]# nano memungkinkan_tags.yml

Setelah membuat dan meluncurkan playbook ansible_tags.yml. Sekarang kita akan mulai menulis perintah di playbook. Pertama, kita akan melewati host yang disediakan di parameter 'hosts' yang akan kita gunakan 'localhost'. Kemudian, kita akan menuliskan nilai “false” di parameter “gather_facts” sehingga kita tidak bisa mendapatkan informasi tambahan tentang localhost saat kita menjalankan playbook.

Setelah itu, kami akan mulai membuat daftar aktivitas di bawah parameter “tugas” satu per satu yang ingin kami jalankan. Kami akan menentukan apakah dokumen tersebut ada di mesin localhost pada proses pertama. Jika tersedia, kami akan menyimpannya di parameter 'register' dan kemudian kami akan memberikan nama unik pada tag tersebut sehingga ketika kami menjalankan playbook, kami akan mudah mengakses tag tersebut. Pada tugas kedua, kita akan melakukan hal yang sama seperti pada tugas pertama, tetapi tag harus unik dan kemudian kita akan menggunakan opsi debug untuk menampilkan tugas beserta pesan terkait.

- tuan rumah:

- localhost
collect_facts: salah


tugas:
- nama: Periksa keberadaan file x`
stat: path=./Host.yml
daftar: fileExists
tag: check_file


- men-debug:
msg: '{{ 'File ada' jika fileExists.stat.exists lain 'File tidak ditemukan' }}'
tag: check_file


- nama: Periksa apakah host.yml dapat diakses oleh pengguna saat ini
shell: stat -c '%a' ./host.yml
daftar: accessPath
tag: check_access


- men-debug:
msg: '{{ 'File dapat diakses' if (accessPath.stdout|int) < 660 else 'File tidak dapat diakses' }}'
tag: check_access

Sekarang, kita akan menyimpan buku pedoman dan kemudian menutupnya. Kami ingin menjalankan playbook ansible_tags.yml jadi kami akan menulis perintah berikut di terminal Ansible untuk menampilkan hasilnya kepada pengguna.

[root@master ansible]# ansible-playbook ansible_tags.yml –tag check_file

Setelah menjalankan perintah di atas, kita akan mendapatkan output yang diinginkan sebagai balasannya. Seperti yang ditunjukkan di bawah ini, hanya satu tugas yang dijalankan dan ditampilkan dalam output yaitu 'periksa keberadaan file'.

Contoh 02: Abaikan Tag Tertentu di Ansible Playbook

Berikut adalah contoh kedua dari tag Ansible di mana kita akan menuju ke tag 'lewati'. Terserah Anda apakah ingin mengabaikan semua tugas atau ingin mengabaikan tugas tertentu dari playbook di Ansible. Kami menggunakan implementasi contoh 1 dan kemudian kami akan melewatkan tugas hanya dengan menulis pernyataan di bawah ini di terminal Ansible.

[root@master ansible]# ansible-playbook ansible_tags.yml --skip-tags check_file

Dari perintah di atas, kami mengabaikan tugas 'periksa keberadaan file'. Sekarang, hanya satu tugas yang ditampilkan dalam output yaitu 'dapat diakses file' dalam font hijau.

Contoh 03: Selalu tetap Menjalankan Tugas di Ansible Playbook

Kami akan menerapkan contoh ketiga berdasarkan tag Ansible. Pada contoh ini, kita akan menggunakan tag “always” yang artinya tag tertentu akan selalu dieksekusi di Ansible Playbook. Untuk meluncurkan playbook, gunakan perintah berikut:

[root@master memungkinkan]# nano memungkinkan_tags.yml

Di buku pedoman, kami telah membuat banyak tugas untuk dijalankan tetapi kami melewati tag 'selalu' di tugas terakhir yaitu 'hapus kata sandi dari inventaris'. Berikut ini adalah perintah yang diimplementasikan dalam buku pedoman:

- tuan rumah: semua

collect_facts: salah


tugas:
- nama: Periksa keberadaan file
stat: path=./Host.yml
daftar: fileExists
delegasi_ke: localhost
tag: check_file


- men-debug:
msg: '{{ 'File ada' jika fileExists.stat.exists lain 'File tidak ditemukan' }}'
tag: check_file


- nama: Periksa apakah host.yml dapat diakses oleh pengguna saat ini
shell: stat -c '%a' ./host.yml
daftar: accessPath
delegasi_ke: localhost
tag: check_access


- men-debug:
msg: '{{ 'File dapat diakses' if (accessPath.stdout|int) < 660 else 'File tidak dapat diakses' }}'
tag: check_access


- nama: Hapus kata sandi dari inventaris
file baris:
jalur: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
status: absen
delegasi_ke: localhost
menjadi: palsu
tag: selalu
with_items:
- kata sandi_mungkin

Setelah itu, kita akan membuat file inventory untuk membangun koneksi antara controller dan remote host target. Di bawah ini adalah perintahnya:

[root@master memungkinkan]# nano host.yml

Berikut adalah file inventaris yang berisi informasi terkait 'Linux_host' di Ansible.

Semua:

tuan rumah:
Linux_Host:
memungkinkan_host: 192.168.3.229
ansible_user: memungkinkan
ansible_password: ******
koneksi_mungkin: ssh
port_mungkin: 22

Untuk mendapatkan hasil yang diinginkan, kami akan menjalankan perintah berikut di terminal Ansible:

[root@master ansible]# ansible-playbook ansible_tags.yml --tags check_file -i host.yml

Kesimpulan

Tag di Ansible telah dijelaskan di artikel ini. Kami sekarang memahami fungsi tag dan tempat di Ansible tempat kami akan menerapkannya. Untuk membantu pelajar memahami konsep tag Ansible, kami telah mengembangkan berbagai contoh.