GNU/Linux >> Belajar Linux >  >> Linux

Punya otomatisasi? Berikut panduan cepat untuk mempercepat Anda di Ansible

Ansible adalah alat otomatisasi open source yang digunakan sysadmin untuk mengotomatiskan konfigurasi infrastruktur, penerapan aplikasi, dan manajemen konfigurasi. Ini tanpa agen, yang berarti tidak memerlukan perangkat lunak apa pun untuk diinstal ke host—tidak seperti beberapa alat otomatisasi lainnya—untuk melakukan tugas yang diperlukan. Sebaliknya, ia menggunakan SSH, jika sistem target berbasis Linux, WinRM jika sistem target berbasis Windows, atau API jika sistem target mengekspos API.

Ini menggunakan bahasa pemrograman deklaratif untuk menentukan konfigurasi target yang diinginkan. Namun, itu tidak menyatakan bagaimana konfigurasi harus diselesaikan. Misalnya, untuk membuat mesin virtual baru, Anda perlu menentukan spesifikasi mesin virtual target dan bagaimana itu digunakan. Ansible Engine, dengan bantuan modul yang relevan, kemudian melakukan tugas yang diperlukan.

Otomasi di dunia TI

Otomatisasi dalam dunia IT diperlukan untuk menghindari melakukan tindakan berulang secara manual dan untuk mempercepat siklus penyebaran. Ansible dimaksudkan untuk memenuhi kebutuhan ini. Berikut adalah beberapa contoh bagaimana Ansible dapat menjadi bagian penting dari infrastruktur TI Anda:

Infrastruktur sebagai Kode

  • Memutar mesin virtual baru dapat dilakukan dengan beberapa cara. Namun, setelah menjalankan VM baru, Anda masih perlu menginstal paket perangkat lunak tambahan, aplikasi, dan seterusnya hingga sistem baru berfungsi. Dengan Ansible, Anda dapat mengotomatiskan seluruh proses itu, mulai dari membuat mesin virtual baru hingga konfigurasi aplikasi.
  • Jika Anda memiliki lingkungan cloud yang terus berkembang, sebenarnya melampirkan sumber daya komputasi baru ke cloud Anda dapat dicapai dengan berbagai alat cloud-native. Namun, Anda harus terlebih dahulu menyiapkan perangkat keras sebelum memasangnya (yaitu, membuat konfigurasi RAID untuk disk lokal, menambahkan VLAN ke profilnya, dll.). Ansible dapat menjadi alat utama untuk menyiapkan perangkat keras Anda dan melampirkannya ke cloud Anda menggunakan API cloud-native.

Otomasi aplikasi

  • Misalkan Anda memiliki aplikasi yang memerlukan pembaruan secara teratur. Misalnya, menambahkan entri baru dalam database dapat diselesaikan dengan beberapa cara. Jika aplikasi Anda tersebar di antara server tertentu, alih-alih membuat skrip yang berbeda untuk berbagai sistem, Anda dapat membuat buku pedoman Ansible yang berisi satu atau lebih permainan untuk mengotomatisasi dan mengatur tindakan ini dari A hingga Z.

[ Anda mungkin juga ingin membaca: Memperkenalkan Ansible Automation Hub baru ]

Modul yang memungkinkan

Modul yang memungkinkan mengambil instruksi untuk melakukan tugas. Salah satu poin terpenting dalam Ansible adalah komunitasnya yang luas, yang secara teratur membuat modul baru. Modul ini biasanya dikodekan dengan Python. Instalasi awal selalu disertai dengan modul yang sudah diinstal sebelumnya. Namun, Anda dapat menginstal modul tambahan dari Internet. Anda dapat memperoleh informasi lebih lanjut mengenai setiap modul (yaitu, apa yang dilakukan modul ini, cara menggunakannya, contoh, dll.) dengan dua cara:

Online :Dengan mencari dokumentasi Ansible.

Saat menelusuri, Anda harus yakin untuk memilih versi Ansible yang sesuai dari daftar tarik-turun di sudut kiri atas halaman.

Luring :Menggunakan ansible-doc perintah dari baris perintah.

$ ansible-doc file

Di sini, Anda sedang mencari cara menggunakan modul bernama file . Pilihan modul yang kaya dari Ansible sebenarnya adalah pedang bermata dua, yang memiliki kelebihan dan kekurangan.

Keuntungan:

  1. Anda dapat menemukan modul untuk hampir setiap tugas yang ingin Anda lakukan.
  2. Anda memiliki komunitas besar untuk mendukung Anda jika diperlukan.

Kekurangan:

  1. Dengan banyaknya modul ini, Anda bisa cepat bingung mana yang harus digunakan. Itulah sebabnya ketika Anda mulai berencana menggunakan Ansible untuk mengotomatisasi tugas-tugas tertentu, Anda perlu membuat strategi untuk menentukan modul mana yang akan digunakan dan mengujinya.
  2. Anda akan menemukan banyak modul komunitas yang tidak didukung lagi atau tidak digunakan lagi dengan rilis Ansible baru. Pastikan untuk hati-hati melakukan setiap upgrade Ansible baru. Juga, lakukan pengujian yang cukup sebelum memindahkan modul ke lingkungan produksi Anda sebelum mempertaruhkan rantai otomatisasi Anda. Memilih modul untuk digunakan dan membangun strategi otomatisasi adalah sesuatu yang akan Anda lakukan seiring waktu.

Bisa dan Python

Ansible sangat bergantung pada Python. Sebagian besar modul dikodekan dengan Python. Selain itu, sistem berbasis Linux target harus menginstal Python untuk mulai mengotomatisasi tugas menggunakan Ansible. Meskipun Ansible sangat bergantung pada Python, pengetahuan Python yang mendalam tidak diperlukan. Namun, mengetahui cara menggunakan pip untuk mengelola paket Python (instal, perbarui, dll.) dan disarankan untuk membuat lingkungan virtual Python.

Peringatan:

  1. Mengubah versi Python atau paket prainstal apa pun pada sistem Ansible Engine adalah tindakan berisiko yang dapat memutus rantai otomatisasi Anda.
  2. Jika Anda menggunakan Ansible Engine yang didukung Red Hat, Red Hat akan membantu Anda membuat lingkungan virtual Python jika Anda mau, tetapi konten lingkungan virtual tidak didukung.

Mesin Ansible vs. Ansible Tower

Ansible dimaksudkan untuk digunakan oleh tim DevOps yang berbeda. Menara Ansible memungkinkan banyak tim untuk menjalankan tugas otomatisasi dari lokasi terpusat yang memungkinkan RBAC, mencatat tugas yang dijalankan, GUI untuk menjalankan tugas, dan lebih banyak fitur. Memiliki sistem otomasi terpusat untuk rantai otomasi besar akan menyederhanakan tugas pemeliharaan Anda. Untuk rantai otomatisasi Ansible kecil, Ansible Engine dapat digunakan, yang merupakan node berbasis Linux dengan binari Ansible yang diinstal. Dalam penyiapan ini, Anda akan kehilangan RBAC dan GUI. Namun, Ansible Engine menyediakan lingkungan yang diperlukan untuk menjalankan tugas otomatisasi yang relevan.

Pendekatan yang memungkinkan?

Ad-hoc

Ad-hoc adalah cara untuk mengirim satu tugas Ansible ke sistem target. Anda dapat melihat ini dengan menjalankan perintah pada sistem jarak jauh menggunakan SSH atau rsh lama. Dengan Ansible ad-hoc, Anda menjalankan tugas yang lebih canggih daripada satu perintah hanya karena Anda menggunakan modul Ansible, yang melakukan lebih dari satu perintah.

Dimainkan

Ansible Plays adalah kumpulan file yang berbeda dalam format YAML, yang akan berjalan pada satu atau lebih sistem target. Drama ini ditulis dalam file yang disebut playbook .

Jenis mana yang digunakan?

Dalam pengalaman saya dengan Ansible, saya telah melihat kedua pendekatan digunakan. Saya telah melihat pengembang membuat daftar perintah ad-hoc dalam skrip Bash sederhana dan yang lainnya membuat buku pedoman yang rapi. Meskipun skrip Bash dengan Ansible ad-hoc mungkin terlihat lebih sederhana, Ansible tidak dimaksudkan untuk digunakan seperti ini. Perintah ad-hoc cocok untuk beberapa tugas sederhana. Untuk skenario otomatisasi penuh, Anda memerlukan buku pedoman untuk men-debug aktivitas yang akan dieksekusi dengan cara visual yang mudah. Salah satu keuntungan signifikan menggunakan buku pedoman adalah Anda dapat mengimpornya ke Menara Ansible saat rantai otomatisasi Anda tumbuh. Seperti yang disebutkan sebelumnya, Anda akan menemukan pengembang yang lebih menyukai cara yang berbeda, tetapi sebagai perancang atau arsitek "rantai otomatisasi", Anda harus mempertimbangkan skalabilitas rantai Anda dan menentukan titik di mana Anda memutuskan untuk mengkonsolidasikan tugas otomatisasi Anda ke Menara Ansible.

YAML

YAML Bukan Bahasa Markup , (YAML) adalah format penulisan playbook Ansible. Format YAML digunakan di beberapa area (yaitu, memanaskan template di OpenStack, membuat/memodifikasi objek di Kubernetes, dll.). Format YAML mudah dibaca. Namun, ini agak rumit karena sensitif terhadap lekukan. Jika Anda belum menulis file apa pun dalam YAML, dan untuk menghindari menghabiskan waktu men-debug buku pedoman Anda, Anda perlu mengambil editor yang memahami sintaks dan pemformatan YAML dan dapat secara otomatis menyesuaikan lekukan Anda. Secara pribadi, saya suka menggunakan editor Vim gratis di sistem Linux. Anda hanya perlu menambahkan baris berikut ke file, beri nama .vimrc dan simpan di direktori home Anda:

autocmd FileType yaml setlocal ai ts=2 sw=2 et

File

Di Ansible, ada beberapa jenis file yang sering Anda dengar. Berikut ini beberapa:

Playbook

Playbook adalah file yang ditulis dalam format YAML yang berisi tugas yang harus dijalankan pada sistem target. Tugas yang menargetkan sistem yang sama biasanya dikelompokkan dalam sebuah permainan, dan sebuah buku pedoman dapat berisi satu atau lebih permainan. Mesin yang memungkinkan menjalankan tugas dari atas file ke bawah.

Inventaris

Ansible Inventory adalah file yang mengidentifikasi sistem target Anda. Anda dapat membuat grup dalam inventaris Anda untuk mengatur sistem Anda. Misalnya, Anda dapat membuat grup untuk server web dan grup lain untuk database. Ansible memiliki dua jenis file inventaris:

Inventaris Statis :File untuk inventaris statis dapat ditulis dalam format INI atau YAML, dan Anda dapat memiliki lebih dari satu file inventaris. Anda dapat menentukan yang mana yang akan digunakan dengan mengetikkan -i path dalam file perintah.

Inventaris Dinamis :Inventaris dinamis adalah skrip yang akan dijalankan untuk mendapatkan sistem yang ditargetkan setiap kali Anda menjalankan buku pedoman Anda. Ini berguna saat Anda menjalankan sistem penargetan buku pedoman yang diterapkan di cloud, dan setiap kali Anda memiliki lebih banyak (atau lebih sedikit) sistem, untuk buku pedoman yang akan ditargetkan.

Ansible Tower telah membuat beberapa skrip inventaris dinamis.

Ansible.cfg

Ansible.cfg adalah file konfigurasi Ansible. Itu dalam format INI. Biasanya disimpan di /etc/ansible/ansible.cfg . Ini mengontrol pengaturan Ansible di seluruh sistem. Namun, Anda mungkin perlu mengubah satu atau beberapa setelan untuk proyek spesifik Anda (yaitu, mengubah format stdout di layar dari JSON ke YAML). Anda dapat membuat ansible.cfg Anda sendiri file dan letakkan di direktori proyek di mana Anda hanya mengubah pengaturan yang ingin Anda timpa.

File variabel

Variabel dalam Ansible adalah subjek penting, dan membutuhkan waktu untuk memahami dan berlatih. Anda dapat menentukan variabel di lebih dari 20 lokasi. Anda harus memahami prioritas variabel untuk mengambil lokasi yang tepat.

Peran

Tujuan utama otomatisasi adalah meminimalkan tugas manual dan mempercepat aktivitas penerapan. Jika Anda memiliki satu atau lebih tugas yang sering Anda lakukan selama permainan yang berbeda dan ingin menyimpannya di lokasi bersama dan merujuknya saat dibutuhkan, maka Ansible Roles akan membantu Anda. Ansible Roles memiliki struktur file yang harus Anda ikuti. Memiliki struktur yang terdefinisi dengan baik ini memudahkan untuk mengunduh Peran yang dikembangkan oleh komunitas untuk digunakan di buku pedoman Anda.

Galaksi Kemungkinan

Ansible Galaxy adalah platform komunitas tempat Anda dapat mengunduh alat tambahan untuk Ansible, modul tambahan, peran, dan buku pedoman. Jika Anda baru mengenal Ansible, ingatlah bahwa Ansible memiliki komunitas yang luas. Untuk hampir setiap kasus yang ingin Anda selesaikan dengan Ansible, orang lain di komunitas mungkin telah memikirkannya dan mengunggahnya ke Ansible Galaxy. Untuk menghindari penemuan kembali roda, ada baiknya meluangkan waktu di Ansible Galaxy untuk mencari sesuatu yang melakukan tugas yang Anda inginkan, mengunduhnya, lalu menggunakannya apa adanya, atau memodifikasinya untuk lingkungan atau aplikasi Anda sendiri.

Pusat Otomatisasi

Seperti disebutkan sebelumnya, Ansible memiliki sejumlah besar modul yang dikembangkan oleh komunitasnya. Kedengarannya memang sangat berguna, tetapi untuk bisnis yang sangat sensitif terhadap waktu-ke-pasar atau memiliki tim otomatisasi kecil yang tidak memiliki keterampilan pengkodean Python, sebaiknya hanya mengandalkan modul komunitas. Beberapa mungkin tidak didukung di rilis Ansible di masa mendatang, sementara yang lain bahkan mungkin ditinggalkan oleh pengembangnya.

Tidak ada yang diperlukan untuk memperbaiki masalah yang ditemukan saat menggunakan modul komunitas, jadi Red Hat telah meningkatkan Ansible dari sekadar alat otomatisasi yang didukung komunitas menjadi tingkat perusahaan dan menghadirkan apa yang disebut Automation Hub. Automation Hub dapat dilihat sebagai versi Ansible Galaxy berbayar yang didukung. Keunggulan layanan ini adalah Anda dapat memilih modul yang Anda butuhkan yang sesuai dengan versi Ansible Anda, serta mendapatkan dukungan jika modul tidak berfungsi seperti yang diharapkan.

Beberapa saran

Ansible, seperti teknologi TI lainnya, memiliki praktik terbaik. Anda dapat mengembangkannya sendiri seiring waktu, tetapi saya ingin membagikan milik saya di sini:

  1. Mulai gunakan Ansible. Anda hanya bisa menguasainya saat menggunakannya.
  2. Jika Anda adalah perancang atau arsitek rantai otomatisasi, meskipun Anda memulai dari langkah kecil, selalu pertimbangkan masa depan dan apa yang perlu Anda lakukan sejak hari pertama agar siap saat rantai otomatisasi Anda semakin besar.
  3. Jika Anda menulis buku pedoman untuk mengotomatiskan tugas, selalu berpikir sederhana dan telusuri Ansible Galaxy. Jika Anda melihat apa yang Anda lakukan terlalu rumit, maka Anda bergerak ke arah yang salah karena Anda tidak akan dapat mempertahankannya di masa mendatang.
  4. Otomasi bukanlah pertunjukan satu orang dalam arti bahwa Anda memiliki orang lain yang bekerja dengan Anda, jadi tulis pedoman Anda dengan cara yang jelas dan deskriptif, dan gunakan sistem SCM untuk kontrol versi.

Sumber untuk dipelajari

Ansible memiliki berbagai sumber belajar. Berikut ini beberapa:

Buku :Ansible memiliki banyak buku di pasaran, tetapi sejauh ini, Ansible:Up and Running menurut saya, adalah referensi terlengkap.

IRC :Di server freenode, Ansible memiliki saluran tempat komunitas dapat membantu Anda jika diperlukan.

Dokumentasi online :Dokumentasi yang memungkinkan sedang online di mana Anda dapat mengunjungi dan belajar darinya.

Sumber daya online dan video :Berikut adalah beberapa sumber online dan video untuk mempelajari Ansible.

  • Instruksi video yang memungkinkan
  • Saluran YouTube Ansible
  • Kursus Red Hat Ansible

[ Butuh lebih banyak tentang Ansible? Ikuti kursus tinjauan teknis gratis dari Red Hat. Ansible Essentials:Kesederhanaan dalam Tinjauan Teknis Otomasi. ] 

Menutup

Ansible adalah alat canggih untuk otomatisasi TI. Mudah dipelajari, mudah diakses, dan kaya dengan modul. Jika Anda berencana lebih dari sekadar mempelajari Ansible—misalnya, membangun rantai otomatisasi atau memigrasikannya ke Ansible—ada banyak sumber daya yang tersedia untuk membantu Anda.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. 10 Modul yang memungkinkan untuk otomatisasi sistem Linux

  3. Proses Boot Linux:Panduan untuk Memulai

  1. Bagaimana Anda memulai Linux?

  2. Panduan Ansible:Kelola File menggunakan Ansible

  3. Demystifying Memungkinkan untuk sysadmin Linux

  1. Panduan cepat untuk DNF untuk pengguna yum

  2. Dapatkan kecepatan tautan secara terprogram?

  3. Dapatkan kecepatan tautan dari adaptor jaringan virtio-net