Cara menggunakan inventaris statis dan dinamis di Ansible - Bagian 4

Cara menggunakan inventaris statis dan dinamis di Ansible - Bagian 4

Di dalam Bagian 4 dari serial ansible, kami akan menjelaskan cara menggunakan inventaris statis dan dinamis untuk mendefinisikan kelompok host di Ansible.

Dalam an Semu, Host atau server yang dikelola yang dikendalikan oleh Node kontrol yang tidak dapat dimampatkan didefinisikan dalam a file inventaris host seperti yang dijelaskan. File inventaris host adalah file teks yang terdiri dari nama host atau Alamat IP host yang dikelola atau server jarak jauh.

Host yang dikelola dapat terdaftar sebagai entri individual atau dikategorikan berdasarkan nama grup seperti yang akan kita lihat nanti. Di Ansible, ada dua jenis file inventaris: Statis Dan Dinamis.

Mari kita lihat masing -masing dan lihat bagaimana kita bisa mengelolanya. Sekarang, kami berasumsi bahwa Anda telah menginstal ansible di node kontrol Anda, dan mengonfigurasi koneksi SSH tanpa kata sandi ke host yang dikelola.

File inventaris host statis

Di dalam Semu, File inventaris statis adalah file teks biasa yang berisi daftar host yang dikelola yang dideklarasikan di bawah grup host menggunakan nama host atau alamat IP.

Nama grup host tertutup dalam kurung persegi i.e [nama grup]. Entri host yang dikelola kemudian tercantum di bawah nama grup, masing -masing di jalurnya sendiri. Seperti dibahas sebelumnya, host terdaftar menggunakan nama host atau alamat IP.

[nama grup] Host A host ip_address b ip_address host c ip_address 

Untuk keperluan ilustrasi, kami akan membuat file inventaris statis.

# mkdir test_lab && cd test_lab # vim hosts 
File inventaris statis
[Webservers] 173.82.115.165 [database_server] 173.82.220.239 [pusat data: anak -anak] WebServer Database_Servers 

Simpan file dan keluar.

Seperti yang dapat Anda lihat di file inventaris di atas, kami telah membuat 2 grup host: server web Dan database_servers. Juga, kami telah membuat grup tambahan yang disebut Pusat Data itu termasuk sekelompok kelompok tuan rumah yang dilambangkan dengan ': anak-anak' Sufiks seperti yang terlihat di atas.

Ansible juga memungkinkan kelompok host ditempatkan di bawah nama grup. Di file inventaris di atas, server web Dan database_servers Grup telah ditempatkan di bawah Pusat Data.

CATATAN: Tidak wajib untuk menempatkan host yang dikelola dalam kelompok tuan rumah. Anda cukup mencantumkannya menggunakan nama host atau alamat IP mereka misalnya.

173.82.202.239 172.82.115.165 LOAD_Balancer.pnl.com 

Sekarang mari kita gunakan beberapa perintah ansible untuk merujuk file inventaris host. Sintaks dasar untuk manajemen inventaris adalah seperti yang ditunjukkan.

$ ansible host-pola -i/path/dari/inventaris/file-list-hosts 

Misalnya,

$ ansible all -i/root/test_labs/host -daftar -rumah 
Daftar host yang tidak mungkin

Atau, Anda dapat menggunakan karakter wildcard * untuk menggantikan 'semua' argumen.

$ ansible * -i/root/test_labs/host -daftar -rumah 
Daftar Host Ansible Menggunakan Wildcards

Untuk membuat daftar host dalam grup, tentukan grup host di tempat pola host.

$ Ansible WebServers -i/root/test_labs/hosts -list -hosts 
Daftar Host Ansible di Grup

File inventaris host dinamis

Dalam konfigurasi - terutama pengaturan cloud seperti AWS Di mana file inventaris terus terus berubah saat Anda menambah atau menonaktifkan server, mengawasi host yang ditentukan dalam file inventaris menjadi tantangan nyata. Menjadi tidak nyaman untuk kembali ke file host dan memperbarui daftar host dengan alamat IP mereka.

Dan di sinilah a Inventaris Dinamis datang untuk bermain. Jadi apa itu inventaris yang dinamis? Inventarisasi Dinamis adalah skrip yang ditulis dalam Python, PHP atau bahasa pemrograman lainnya. Muncul berguna di lingkungan cloud seperti AWS di mana alamat IP berubah begitu server virtual dihentikan dan dimulai lagi.

Ansible telah mengembangkan skrip inventaris untuk platform cloud publik seperti Google Compute Engine, Amazon EC2 Instance, OpenStack, Rackspace, Cobbler, antara lain.

Apa keuntungan dari inventaris dinamis dibandingkan inventaris statis?
  • Inventaris Dinamis Lakukan pekerjaan yang sempurna untuk mengurangi kesalahan manusia saat informasi dikumpulkan menggunakan skrip.
  • Upaya minimal diperlukan dalam mengelola inventaris.

Anda dapat menulis inventaris dinamis kustomisasi Anda sendiri dalam bahasa pemrograman pilihan Anda. Inventaris harus mengembalikan format di JSON saat opsi yang tepat dilewatkan.

Memanfaatkan skrip inventaris dinamis yang ada

Skrip yang digunakan untuk membuat inventaris dinamis harus dieksekusi sehingga ansible dapat menggunakannya.

Untuk mengambil informasi tentang host di dalam skrip inventaris dinamis cukup jalankan.

# ./skrip -list 

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

Kamus yang terdiri dari kelompok (i.E Webservers, Database_Server)
  • Daftar host yang dikelola per grup
  • Kamus Variabel
Kamus Meta
  • Tuan rumah dan hostvars
Output sampel
"WebServer": "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 cara membuat inventaris statis dan dinamis. Singkatnya, file inventaris statis adalah file teks biasa yang berisi daftar host yang dikelola atau node jarak jauh yang nomor dan alamat IP tetap cukup konstan.

Di sisi lain, file host dinamis terus berubah saat Anda menambahkan host baru atau dekomisi yang lama. Alamat IP host juga dinamis saat Anda berhenti dan memulai sistem host baru. Kami berharap Anda menemukan tutorial ini informatif.