Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Lingkungan TI menjadi semakin kompleks. Dalam kondisi ini, sangat penting bagi sistem otomasi TI untuk memiliki informasi terkini tentang node yang ada di jaringan dan sedang diproses. Di Red Hat Ansible Automation Platform, masalah ini diselesaikan melalui apa yang disebut inventaris (inventaris) – daftar node yang dikelola.

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Dalam bentuknya yang paling sederhana, inventaris adalah file statis. Ini ideal ketika Anda mulai bekerja dengan Ansible, tetapi seiring dengan meningkatnya otomatisasi, hal ini menjadi tidak mencukupi.

Dan inilah alasannya:

  1. Bagaimana Anda memperbarui dan memelihara daftar lengkap node yang dipantau ketika segala sesuatunya terus berubah, ketika beban kerjaβ€”dan selanjutnya node yang menjalankannyaβ€”datang dan pergi?
  2. Bagaimana cara mengklasifikasikan komponen infrastruktur TI untuk memilih node secara spesifik untuk menerapkan otomatisasi tertentu?

Inventaris dinamis memberikan jawaban atas kedua pertanyaan ini (inventaris dinamis) – skrip atau plugin yang mencari node untuk diotomatisasi, mengacu pada sumber kebenaran. Selain itu, inventaris dinamis secara otomatis mengklasifikasikan node ke dalam grup sehingga Anda dapat memilih sistem target dengan lebih akurat untuk melakukan otomatisasi Ansible tertentu.

Plugin inventaris memberi pengguna yang memungkinkan kemampuan untuk mengakses platform eksternal untuk mencari node target secara dinamis dan menggunakan platform ini sebagai sumber kebenaran saat membuat inventaris. Daftar sumber standar di Ansible mencakup platform cloud AWS EC2, Google GCP, dan Microsoft Azure, dan ada juga banyak plugin inventaris lainnya untuk Ansible.

Ansible Tower hadir dengan sejumlah plugin inventaris, yang langsung berfungsi dan, selain platform cloud yang tercantum di atas, menyediakan integrasi dengan VMware vCenter, Red Hat OpenStack Platform, dan Red Hat Satellite. Untuk plugin ini, Anda hanya perlu memberikan kredensial untuk terhubung ke platform target, setelah itu dapat digunakan sebagai sumber data inventaris di Ansible Tower.

Selain plugin standar yang disertakan dengan Ansible Tower, ada plugin inventaris lain yang didukung oleh komunitas Ansible. Dengan transisi ke Koleksi Konten Red Hat Ansible plugin ini mulai dimasukkan dalam koleksi terkait.

Dalam postingan ini, kami akan mengambil contoh bekerja dengan plugin inventaris untuk ServiceNow, platform manajemen layanan TI populer di mana pelanggan sering menyimpan informasi tentang semua perangkat mereka di CMDB. Selain itu, CMDB dapat berisi konteks yang berguna untuk otomatisasi, seperti informasi tentang pemilik server, tingkat layanan (produksi/non-produksi), pembaruan yang diinstal, dan jangka waktu pemeliharaan. Plugin inventaris Ansible dapat bekerja dengan ServiceNow CMDB dan merupakan bagian dari koleksi layanan sekarang di portal galaksi.ansible.com.

Repositori Git

Untuk menggunakan plugin inventaris dari koleksi di Ansible Tower, plugin tersebut harus ditetapkan sebagai sumber proyek. Di Ansible Tower, proyek merupakan integrasi dengan beberapa jenis sistem kontrol versi, seperti repositori git, yang dapat digunakan untuk menyinkronkan tidak hanya buku pedoman otomatisasi, tetapi juga variabel dan daftar inventaris.

Repositori kami sebenarnya sangat sederhana:

β”œβ”€β”€ collections
β”‚   └── requirements.yml
└── servicenow.yml

File servicenow.yml berisi detail inventaris plugin. Dalam kasus kami, kami cukup menentukan tabel di CMDB ServiceNow yang ingin kami gunakan. Kita juga mengatur field yang akan ditambahkan sebagai variabel node, ditambah informasi tertentu pada grup yang ingin kita buat.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

Harap perhatikan bahwa ini tidak menentukan instance ServiceNow yang akan kami sambungkan dengan cara apa pun, dan tidak menentukan kredensial apa pun untuk koneksi. Kami akan mengkonfigurasi semua ini nanti di Ansible Tower.

Koleksi file/persyaratan.yml diperlukan agar Ansible Tower dapat mengunduh koleksi yang diperlukan dan dengan demikian memperoleh plugin inventaris yang diperlukan. Jika tidak, kami harus menginstal dan memelihara koleksi ini secara manual di semua node Ansible Tower kami.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

Setelah kami memasukkan konfigurasi ini ke kontrol versi, kami dapat membuat proyek di Ansible Tower yang mereferensikan repositori yang sesuai. Contoh di bawah ini menghubungkan Ansible Tower ke repositori github kami. Perhatikan URL SCM: ini memungkinkan Anda mendaftarkan akun untuk terhubung ke repositori pribadi, serta menentukan cabang, tag, atau komit tertentu untuk diperiksa.

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Membuat kredensial untuk ServiceNow

Seperti disebutkan, konfigurasi dalam repositori kami tidak berisi kredensial untuk terhubung ke ServiceNow dan tidak menentukan instance ServiceNow yang akan kami komunikasikan. Oleh karena itu, untuk mengatur data ini, kami akan membuat kredensial di Ansible Tower. Berdasarkan Dokumentasi plugin inventaris ServiceNow, ada beberapa variabel lingkungan yang akan kita atur parameter koneksinya, misalnya seperti ini:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

Dalam hal ini, jika variabel lingkungan SN_USERNAME disetel, plugin inventaris akan menggunakannya sebagai akun untuk terhubung ke ServiceNow.

Kita juga perlu mengatur variabel SN_INSTANCE dan SN_PASSWORD.

Namun, tidak ada kredensial jenis ini di Ansible Tower tempat Anda dapat menentukan data ini untuk ServiceNow. Tapi Ansible Tower memungkinkan kita untuk mendefinisikannya jenis kredensial khusus, Anda dapat membaca lebih lanjut tentang ini di artikel "Sorotan Fitur Menara yang Mungkin: Kredensial Khusus".

Dalam kasus kami, konfigurasi masukan untuk kredensial khusus untuk ServiceNow terlihat seperti ini:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Kredensial ini akan ditampilkan sebagai variabel lingkungan dengan nama yang sama. Hal ini dijelaskan dalam konfigurasi injektor:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

Jadi, kita telah menentukan jenis kredensial yang kita perlukan, sekarang kita dapat menambahkan akun ServiceNow dan mengatur instance, nama pengguna, dan kata sandi, seperti ini:

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Kami membuat inventaris

Jadi, sekarang kita semua siap untuk membuat inventaris di Ansible Tower. Sebut saja ServiceNow:

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Setelah membuat inventaris, kita dapat melampirkan sumber data ke dalamnya. Di sini kami menentukan proyek yang kami buat sebelumnya dan memasukkan jalur ke file inventaris YAML kami di repositori kontrol sumber, dalam kasus kami adalah servicenow.yml di root proyek. Selain itu, Anda perlu menautkan akun ServiceNow Anda.

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Untuk memeriksa cara kerja semuanya, mari coba sinkronkan dengan sumber data dengan mengklik tombol β€œSinkronkan semua”. Jika semuanya dikonfigurasi dengan benar, maka node harus diimpor ke inventaris kami:

Menggunakan plugin inventaris dari Ansible Content Collections di Ansible Tower

Harap dicatat bahwa grup yang kami butuhkan juga telah dibuat.

Kesimpulan

Dalam postingan ini, kami melihat cara menggunakan plugin inventaris dari koleksi di Ansible Tower menggunakan plugin ServiceNow sebagai contoh. Kami juga mendaftarkan kredensial dengan aman untuk terhubung ke instance ServiceNow kami. Menautkan plugin inventaris dari suatu proyek tidak hanya berfungsi dengan plugin pihak ketiga atau khusus, namun juga dapat digunakan untuk mengubah pengoperasian beberapa inventaris standar. Hal ini membuat Ansible Automation Platform mudah dan lancar untuk diintegrasikan dengan alat yang ada saat mengotomatisasi lingkungan TI yang semakin kompleks.

Anda dapat menemukan informasi lebih lanjut tentang topik yang dibahas dalam postingan ini, serta aspek lain dalam menggunakan Ansible, di sini:

*Red Hat tidak memberikan jaminan bahwa kode yang terkandung di sini benar. Semua materi disediakan atas dasar non-pengesahan kecuali dinyatakan lain secara tegas.

Sumber: www.habr.com

Tambah komentar