Cara Menggunakan Inventori Statik dan Dinamik Di Ansible - Bahagian 4

Cara Menggunakan Inventori Statik dan Dinamik Di Ansible - Bahagian 4

Di dalam ini Bahagian 4 dari siri Ansible, kami akan menerangkan cara menggunakan inventori statik dan dinamik untuk menentukan kumpulan tuan rumah di Ansible.

Dalam Ansible, tuan rumah atau pelayan yang dikendalikan yang dikawal oleh Nod kawalan ansible ditakrifkan dalam a fail inventori tuan rumah seperti yang dijelaskan dalam. Fail inventori tuan rumah adalah fail teks yang terdiri daripada Nama Host atau Alamat IP tuan rumah yang diuruskan atau pelayan terpencil.

Tuan rumah yang diuruskan sama ada boleh disenaraikan sebagai penyertaan individu atau dikategorikan di bawah nama kumpulan seperti yang akan kita lihat kemudian. Di Ansible, terdapat dua jenis fail inventori: Statik dan Dinamik.

Mari kita lihat setiap satu daripada ini dan lihat bagaimana kita dapat menguruskannya. Sekarang, kami mengandaikan bahawa anda telah memasang Ansible pada nod kawalan anda, dan mengkonfigurasi sambungan SSH tanpa kata laluan ke tuan rumah anda yang terurus.

Fail inventori hos statik

Dalam Ansible, Fail inventori statik adalah fail teks biasa yang mengandungi senarai tuan rumah terurus yang diisytiharkan di bawah kumpulan tuan rumah menggunakan nama host atau alamat IP sama ada.

Nama kumpulan tuan rumah disertakan dalam kurungan persegi i.e [nama kumpulan]. Penyertaan tuan rumah yang diuruskan kemudian disenaraikan di bawah nama kumpulan, masing -masing di baris sendiri. Seperti yang dibincangkan sebelumnya, tuan rumah disenaraikan menggunakan nama host atau alamat IP.

[nama kumpulan] Hoskan tuan rumah ip_address b ip_address host c ip_address 

Untuk tujuan ilustrasi, kami akan membuat fail inventori statik.

# mkdir test_lab && cd test_lab # vim hosts 
Fail inventori statik
[Webservers] 173.82.115.165 [Database_Servers] 173.82.220.239 [Datacenter: Kanak -kanak] WebServers Database_Servers 

Simpan fail dan keluar.

Seperti yang dapat anda lihat dalam fail inventori di atas, kami telah mencipta 2 kumpulan tuan rumah: Webservers dan Database_servers. Juga, kami telah membuat kumpulan tambahan yang dipanggil Pusat data yang merangkumi sekumpulan kumpulan tuan rumah yang dilambangkan oleh ': kanak -kanak' akhiran seperti yang dilihat di atas.

Ansible juga membolehkan kumpulan tuan rumah diletakkan di bawah nama kumpulan. Dalam fail inventori di atas, Webservers dan Database_servers kumpulan telah diletakkan di bawah Pusat data.

CATATAN: Tidak wajib untuk meletakkan tuan rumah yang diuruskan dalam kumpulan tuan rumah. Anda hanya boleh menyenaraikannya menggunakan nama host atau alamat IP mereka.

173.82.202.239 172.82.115.165 LOAD_BABANCER.pnl.com 

Mari kita gunakan beberapa arahan ansible untuk merujuk fail inventori tuan rumah. Sintaks asas untuk pengurusan inventori adalah seperti yang ditunjukkan.

$ ansible host-cork -i/path/of/inventory/file-list-hosts 

Sebagai contoh,

$ ansible All -i/root/test_labs/host - -list -hosts 
Senaraikan tuan rumah ansible

Sebagai alternatif, anda boleh menggunakan watak Wildcard * untuk menggantikan 'semua' argumen.

$ ansible * -i/root/test_labs/hosts -list -hosts 
Senaraikan tuan rumah ansible menggunakan kad liar

Untuk menyenaraikan tuan rumah dalam kumpulan, tentukan kumpulan tuan rumah di tempat corak tuan rumah.

$ Ansible Webservers -i/root/test_labs/host - -list -hosts 
Senaraikan tuan rumah ansible dalam kumpulan

Fail Inventori Hos Dinamik

Dalam konfigurasi - terutamanya persediaan awan seperti AWS Di mana fail inventori sentiasa berubah semasa anda menambah atau pelayan penyahkodan, menyimpan tab pada tuan rumah yang ditakrifkan dalam fail inventori menjadi cabaran sebenar. Ia menjadi tidak selesa kembali ke fail tuan rumah dan mengemas kini senarai tuan rumah dengan alamat IP mereka.

Dan ini adalah tempat a Inventori Dinamik datang bermain. Jadi apakah inventori dinamik? Inventori dinamik adalah skrip yang ditulis dalam Python, PHP atau bahasa pengaturcaraan lain. Ia berguna dalam persekitaran awan seperti AWS di mana alamat IP berubah apabila pelayan maya dihentikan dan dimulakan lagi.

Ansible sudah membangunkan skrip inventori untuk platform awan awam seperti Google Compute Engine, Amazon EC2 Instance, OpenStack, Rackspace, Cobbler, antara lain.

Apakah kelebihan inventori dinamik dalam inventori statik?
  • Inventori Dinamik Melakukan pekerjaan yang sempurna untuk mengurangkan kesilapan manusia kerana maklumat dikumpulkan menggunakan skrip.
  • Usaha minimum diperlukan dalam menguruskan inventori.

Anda boleh menulis inventori dinamik anda sendiri dalam bahasa pengaturcaraan pilihan anda. Inventori harus mengembalikan format di JSON apabila pilihan yang sesuai diluluskan.

Menggunakan skrip inventori dinamik yang ada

Skrip yang digunakan untuk membuat inventori dinamik harus dibuat boleh dilaksanakan supaya Ansible dapat menggunakannya.

Untuk mendapatkan maklumat mengenai tuan rumah di dalam skrip inventori dinamik hanya dijalankan.

# ./skrip -list 

Seperti yang ditunjukkan sebelum ini, output harus berada di JSON dalam format di bawah.

Kamus yang terdiri daripada kumpulan (i.e Webservers, Database_Servers)
  • Senarai tuan rumah terurus setiap kumpulan
  • Kamus pembolehubah
Kamus Meta
  • Tuan rumah dan tuan rumah
Output sampel
"Webservers": "Hosts": ["WebServer1.Contoh.com "," Webserver2.Contoh.com "]," vars ": ," database_servers ": " hosts ": [" mysql_db1 "," mysql_db2 "]," vars ": ," _meta ": " hostvars ": " mysql_db2 ": ," WebServer2.Contoh.com ": ," WebServer1.Contoh.com ": ," mysql_db1 ":  
Kesimpulan

Dalam artikel ini, kami telah menunjukkan bagaimana untuk membuat kedua -dua inventori statik dan dinamik. Ringkas.

Sebaliknya, fail tuan rumah yang dinamik terus berubah apabila anda menambah tuan rumah baru atau penstrukturan lama. Alamat IP tuan rumah juga dinamik semasa anda berhenti dan memulakan sistem hos baru. Kami berharap anda mendapat maklumat tutorial ini.