Cara Menggunakan Teg dalam Ansible

Cara Menggunakan Teg Dalam Ansible



Lakonan, peranan dan tugas ialah struktur ansible dan struktur ansible ini mengandungi atribut penting yang dipanggil tag dalam Ansible. Setiap kali kami melancarkan buku main dalam Ansible, anda boleh menggunakan perintah -tags dan –skip tags supaya kami boleh melaksanakan hanya siri tugasan, lakonan dan peranan tertentu. Jika kami mempunyai buku permainan yang mengandungi begitu banyak tugasan, tetapi kami tidak mahu melaksanakan semua tugasan buku main itu, dan bukannya melaksanakan keseluruhan buku main, kami hanya akan menjalankan beberapa tugasan dengan menggunakan arahan teg dalam buku main Ansible.

Kami akan membincangkan teg dalam topik ini, yang berfungsi sebagai salah satu aspek terpenting Ansible. Kami akan cuba menerangkan maksud teg dan cara teg beroperasi dalam Ansible kerana ini merupakan ciri platform Ansible yang membingungkan.







Sebagai contoh, buku main mungkin mengandungi tiga tanggungjawab: memasang modul, mengkonfigurasinya dan menyemak status modul yang digunakan, seperti sama ada perkhidmatan sedang berjalan dan boleh diakses. Memandangkan kami hanya perlu melihat keadaan modul pada beberapa mesin jauh, kami menggunakan teg Ansible dalam situasi ini dan bukannya melaksanakan semua tugasan dalam buku main. Ia membolehkan kami menjalankan operasi tertentu secara eksklusif, membolehkan kami mengurangkan masa berjalan dengan menyimpan semua aktiviti berkaitan dalam satu buku permainan.



Prasyarat Penggunaan Teg dalam Buku Play Ansible

Untuk meletakkan contoh praktikal dalam perisian ansible, kami mesti memenuhi keperluan berikut.



Pelayan kawalan Ansible mesti diperlukan supaya ia akan membuat perubahan. Untuk menggunakan parameter teg dalam perisian Ansible, kami memerlukan hos tempatan untuk berkomunikasi dengan mereka. Dalam kes ini, kami menggunakan hos tempatan sepanjang pelaksanaan sebagai pelayan jauh sasaran. Kami akan membuat buku permainan, melaksanakan perintah teg Ansible dan memantau keputusan pada hos jauh daripada peranti pengawal ansible.





Kami akan menyasarkan untuk menggunakan senario yang berbeza untuk memeriksa beberapa teg Ansible supaya pelajar dapat memahami dengan mudah konsep teg dalam buku permainan Ansible.

Contoh 01: Mengakses Tugas Tunggal dalam Buku Play Ansible

Kami akan melaksanakan dalam Ansible dengan menyediakan berbilang tugas dalam buku main dan kemudian kami akan mengakses hanya satu tugas dengan menggunakan tag di dalamnya. Untuk berbuat demikian, kami akan membuat buku main dahulu dengan menulis arahan berikut:



[root@master ansible]# nano ansible_tags.yml

Selepas mencipta dan melancarkan buku main ansible_tags.yml. Sekarang kita akan mula menulis arahan dalam buku permainan. Mula-mula, kami akan lulus hos yang disediakan dalam parameter 'hos' yang akan kami gunakan 'host tempatan'. Kemudian, kami akan menulis nilai 'false' dalam parameter 'gather_facts' supaya kami tidak boleh mendapatkan maklumat tambahan tentang localhost apabila kami melaksanakan playbook.

Selepas itu, kami akan mula menyenaraikan aktiviti di bawah parameter 'tugas' satu demi satu yang ingin kami laksanakan. Kami akan menentukan sama ada dokumen itu ada pada mesin localhost dalam proses pertama. Jika ia tersedia, kami akan menyimpannya dalam parameter 'daftar' dan kemudian kami akan memberikan nama unik kepada teg supaya apabila kami melaksanakan buku main, mudah untuk kami mengakses teg tersebut. Dalam tugasan kedua, kami akan melakukan perkara yang sama seperti yang telah kami lakukan dalam tugasan pertama, tetapi teg mestilah unik dan kemudian kami akan menggunakan pilihan nyahpepijat untuk mempamerkan tugasan bersama-sama dengan mesej yang berkaitan.

- hos:

- localhost
kumpulkan_fakta: palsu


tugasan:
- nama: Semak kewujudan fail x`
stat: laluan=./host.yml
daftar: fileExists
tag: check_file


- nyahpepijat:
msg: '{{ 'Fail wujud' jika fileExists.stat.wujud lain 'Fail tidak ditemui' }}'
tag: check_file


- nama: Semak sama ada host.yml boleh diakses oleh pengguna semasa
shell: stat -c '%a' ./host.yml
daftar: accessPath
tag: check_access


- nyahpepijat:
msg: '{{ 'Fail boleh diakses' jika (accessPath.stdout|int) < 660 lain 'Fail tidak boleh diakses' }}'
tag: check_access

Sekarang, kami akan menyimpan buku main dan kemudian menutupnya. Kami mahu menjalankan buku main ansible_tags.yml supaya kami akan menulis arahan berikut dalam terminal Ansible untuk mempamerkan output kepada pengguna.

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

Selepas menjalankan arahan di atas, kita akan mendapat output yang dikehendaki sebagai balasan. Seperti yang ditunjukkan di bawah, hanya satu tugasan dilaksanakan dan itu dipaparkan dalam output iaitu 'semak kewujudan fail'.

Contoh 02: Abaikan Tag Tertentu dalam Buku Bermain Ansible

Berikut ialah contoh kedua teg Ansible di mana kita akan pergi ke teg 'langkau'. Terpulang kepada anda sama ada anda mahu mengabaikan semua tugas atau anda mahu mengabaikan tugas tertentu buku main dalam Ansible. Kami menggunakan pelaksanaan contoh 1 dan kemudian kami hanya akan melangkau tugas dengan hanya menulis pernyataan di bawah dalam terminal Ansible.

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

Daripada arahan di atas, kami hanya mengabaikan tugas 'semak kewujudan fail'. Kini, hanya satu tugasan dipaparkan dalam output yang 'boleh diakses fail' dalam fon hijau.

Contoh 03: Sentiasa teruskan Menjalankan Tugas dalam Buku Bermain Ansible

Kami akan melaksanakan contoh ketiga berdasarkan tag Ansible. Dalam contoh ini, kami akan menggunakan teg 'sentiasa' yang bermaksud bahawa teg tertentu akan sentiasa dilaksanakan dalam Buku Main Ansible. Untuk melancarkan buku main, gunakan arahan berikut:

[root@master ansible]# nano ansible_tags.yml

Dalam buku permainan, kami telah mencipta berbilang tugasan untuk dijalankan tetapi kami melepasi teg 'sentiasa' dalam tugasan terakhir iaitu 'memadam kata laluan daripada inventori'. Berikut adalah arahan yang dilaksanakan dalam buku permainan:

- hos: semua

kumpulkan_fakta: palsu


tugasan:
- nama: Semak kewujudan fail
stat: laluan=./host.yml
daftar: fileExists
delegate_to: localhost
tag: check_file


- nyahpepijat:
msg: '{{ 'Fail wujud' jika fileExists.stat.wujud lain 'Fail tidak ditemui' }}'
tag: check_file


- nama: Semak sama ada host.yml boleh diakses oleh pengguna semasa
shell: stat -c '%a' ./host.yml
daftar: accessPath
delegate_to: localhost
tag: check_access


- nyahpepijat:
msg: '{{ 'Fail boleh diakses' jika (accessPath.stdout|int) < 660 lain 'Fail tidak boleh diakses' }}'
tag: check_access


- nama: Padam kata laluan daripada inventori
lineinfile:
laluan: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
negeri: tidak hadir
delegate_to: localhost
menjadi: palsu
tags: sentiasa
dengan_item:
- kata laluan_ansible

Selepas itu, kami akan mencipta fail inventori untuk membina sambungan antara pengawal dan hos jauh sasaran. Di bawah ialah arahan:

[root@master ansible]# nano host.yml

Berikut ialah fail inventori yang mengandungi maklumat yang berkaitan dengan 'Linux_host' dalam Ansible.

Semua:

hos:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Untuk mendapatkan output yang dikehendaki, kami akan menjalankan arahan berikut dalam terminal Ansible:

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

Kesimpulan

Teg dalam Ansible telah dijelaskan dalam artikel ini. Kami kini memahami fungsi teg dan tempat dalam Ansible yang akan kami gunakan. Untuk membantu pelajar memahami konsep teg Ansible, kami telah membangunkan pelbagai contoh.