GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengelola Inventaris Host Statis dan Dinamis yang Mungkin

Seperti yang kita ketahui bahwa Mungkin adalah alat otomatisasi yang paling kuat yang dapat mengkonfigurasi host dengan mudah. Manfaat utama menggunakan Ansible sebagai alat otomatisasi adalah kita tidak perlu menginstal agen apa pun di host. Komunikasi antara server Ansible dan kliennya atau host yang dikelola tidak memiliki agen, ia bekerja melalui mekanisme ssh.

Dalam terminologi Ansible, sistem tempat kami menginstal perangkat lunak yang memungkinkan  disebut sebagai “Control Node ” dan server yang dikelola dan dikonfigurasi oleh server Ansible atau Control Node dikenal sebagai “Managed Host “. Entri Host yang Dikelola disimpan dalam file inventaris host, ini adalah file teks pada node kontrol yang terdiri dari nama host atau alamat ip yang dikelola. Di Ansible, kami dapat mengelola dua jenis inventaris host yaitu statis dan  dinamis .

Pada artikel kali ini kita akan membahas bagaimana cara mengelola inventori Static dan Dynamic Host di Ansible. Saya berasumsi perangkat lunak Ansible sudah diinstal pada node kontrol saya. Setiap kali kami menginstal perangkat lunak yang memungkinkan, file host default yang memungkinkan dibuat dengan nama “hosts ” di bawah folder “/etc/ansible ” Jika software Ansible tidak diinstal di server Anda, lihat di bawah

  • Cara Menginstal Ansible (Alat Otomatisasi) di CentOS 8/RHEL 8
  • Cara menginstal Ansible Automation tool di CentOS 7.x

Dalam tutorial ini saya akan menggunakan yang berikut:

Satu Simpul Kontrol –   control-node.example.com (192.168.0.10)

Dua Host Terkelola – servera.example.com (192.168.0.20) dan serverb.example.com (192.168.0.30)

Inventaris Host Statis

Inventaris host statis di Ansible adalah mirip INI file teks, di mana bagian masing-masing menyatakan satu grup host ( grup host). Setiap bagian dimulai dengan nama grup host yang diapit dalam tanda kurung siku([]) kemudian entri host dari setiap host yang dikelola dalam grup dicantumkan, masing-masing pada satu baris. Entri host dapat nama host atau alamat IP dari host yang dikelola. Mari Buat file inventaris dengan nama "inventaris" di bawah folder "test-lab" di direktori home pengguna Anda.

[[email protected] ~]$ mkdir test-lab
[[email protected] ~]$ cd test-lab/
[[email protected] test-lab]$ vi inventory
control-node.example.com
192.168.0.10

[webserver]
servera.example.com

[dbserver]
serverb.example.com

[datacenter:children]
webserver
dbserver

Simpan dan Keluar dari file.

Dalam file inventaris saya telah membuat dua grup host dengan nama server web dan dbserver, selain itu kami telah membuat satu grup lagi dengan nama pusat data yang mencakup grup grup host. Inventaris host yang mungkin dapat mencakup grup grup host, ini dilakukan dengan ':anak-anak ' contoh sufiks ditampilkan dalam inventaris yang dibuat di atas. Juga Tidak wajib untuk menempatkan host dalam grup, kita cukup menempatkan host tanpa menyebutkan grup host seperti entri "control-node.exmaple.com" di file inventaris

Mari lakukan beberapa operasi dasar dengan perintah yang memungkinkan dengan merujuk host inventaris.

Untuk menggunakan perintah yang memungkinkan untuk manajemen host, jalur file inventaris host harus ditentukan dengan “-i ” pilihan.

$ ansible {host-pattern}  -i  /  –list-hosts

Contoh:1 Daftar semua host yang dikelola

Untuk membuat daftar semua host yang dikelola,  tentukan kata kunci 'semua' sebagai ganti pola host dalam perintah yang memungkinkan, contoh ditampilkan di bawah

[[email protected] test-lab]$ ansible all -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (4):
    control-node.example.com
    192.168.0.10
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Cara lain untuk membuat daftar semua host yang dikelola adalah dengan menggunakan karakter wild card “*”.

[[email protected] test-lab]$ ansible '*' -i /home/linuxtechi/test-lab/inventory --list-hosts

Contoh:2 Daftar host yang dikelola berdasarkan grup host.

Tentukan nama grup host sebagai ganti pola host

[[email protected] test-lab]$ ansible webserver -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    servera.example.com
[[email protected] test-lab]$
[[email protected] test-lab]$ ansible datacenter -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (2):
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Contoh:3 Daftar host yang dikelola berdasarkan pola host wild card.

Daftar semua host yang berada di domain “*.example.com”

[[email protected] test-lab]$ ansible '*.example.com' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (3):
    control-node.example.com
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Daftar semua host yang ada di jaringan “192.168.0.0”

[[email protected] test-lab]$ ansible '192.168.0.*' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    192.168.0.10
[[email protected] test-lab]$

Contoh:4 Pola host lanjutan seperti penyertaan dan pengecualian

Selain wildcard, Ansible memungkinkan kita untuk membuat pola host yang kompleks menggunakan logika inklusi dan eksklusi. Penyertaan dilakukan dengan karakter ':' untuk memisahkan grup dalam pola host untuk menunjukkan logika OR.

Contoh pola Penyertaan Host

[[email protected] test-lab]$ ansible 'webserver:dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (2):
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Contoh pola Persimpangan Host

‘:&’ mewakili perpotongan dua grup dalam file inventaris

[[email protected] test-lab]$ ansible 'datacenter:&dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    serverb.example.com
[[email protected] test-lab]$

Contoh pola Pengecualian Host

Pengecualian dilakukan dengan menggunakan karakter ':' dalam hubungannya dengan karakter '!'

[[email protected] test-lab]$ ansible 'datacenter:!dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    servera.example.com
[[email protected] test-lab]$

Inventaris Host Dinamis

Inventaris host di Ansible dapat dibuat secara dinamis. Sumber untuk informasi inventaris dinamis termasuk penyedia cloud publik / pribadi, informasi sistem tukang sepatu, database LDAP, atau CMDB (database Manajemen Konfigurasi). Ansible mencakup skrip yang menangani informasi host, grup, dan variabel dinamis dari penyedia paling umum seperti Amazon EC2, Cobbler, Rackspace, dan OpenStack.

Untuk penyedia Cloud, autentikasi dan informasi akses harus ditentukan dalam file yang dapat diakses skrip. Sejumlah skrip yang ada tersedia dari Situs GitHub Ansible di https://github.com/ansible/ansible/tree/devel/contrib/inventory, skrip ini mendukung pembuatan dinamis inventaris berdasarkan informasi host yang tersedia dari a platform dalam jumlah besar seperti Openstack , AWS , Luar biasa , Satelit Topi Merah dan OpenShift .

Kami dapat menulis program inventaris dinamis kustomisasi kami sendiri dalam bahasa pemrograman apa pun dan harus kembali dalam format JSON jika diberikan opsi yang sesuai. Agar Ansible dapat menggunakan skrip untuk mengambil informasi host dari sistem inventaris eksternal, skrip ini harus mendukung –daftar parameter, mengembalikan grup host dan informasi host yang mirip dengan hash/kamus JSON. Contoh ditunjukkan di bawah ini :

[[email protected] test-lab]$ ./inventoryscript --list
{
  "webservers" :["web1.example.com", "web2.example.com" ],
  "dbservers" :["db1.example.com", "db2.example.com"]
}

Skrip yang membuat inventaris dinamis harus dapat dieksekusi agar Ansible dapat menggunakannya.

Catatan:Ansible mendukung penggunaan beberapa inventaris dalam proses yang sama. Jika nilai diteruskan ke parameter '-i' atau nilai parameter inventaris di /etc/ansible/ansible.cfg . Ketika beberapa file inventaris ada, mereka diperiksa dalam urutan abjad. Oleh karena itu, penting agar nama file mengikuti nama file lain dalam urutan abjad jika kontennya bergantung pada konten file lain.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Bagaimana menangani perpustakaan dinamis dan statis di Linux

  3. Cara Mengelola Kedaluwarsa dan Penuaan Kata Sandi Pengguna di Linux

  1. Cara Mengelola dan Mendaftar Layanan di Linux

  2. Cara Menginstal dan Menguji Ansible di Linux

  3. Cara Mengkonfigurasi Alamat IP Statis Dan Dinamis Di Arch Linux

  1. Cara Mengatur Alamat IP Statis dan Konfigurasi Jaringan di Linux

  2. Cara mengimpor dan mengelola Modul boneka di Katello

  3. Cara Mengelola Host Windows Jarak Jauh menggunakan Ansible