GNU/Linux >> Belajar Linux >  >> Linux

Panduan mulai cepat untuk Ansible untuk sysadmin Linux

Dalam artikel ini, saya membahas prasyarat untuk menginstal Ansible, instalasi Ansible menggunakan server Satelit, menyiapkan Ansible untuk otomatisasi, pengenalan buku pedoman, file inventaris, dan melalui kasus penggunaan untuk Ansible. Lihat artikel pertama, Demystifying Ansible untuk sysadmin Linux, jika Anda belum melakukannya.

Prasyarat untuk menginstal Ansible

Untuk menggunakan Ansible di lingkungan Anda, Anda harus menyiapkan simpul manajemen (juga disebut node kontrol ) di mana Anda akan menginstal Ansible. Anda dapat menginstal Ansible di mesin apa pun dengan Python 2 (versi 2.7) atau Python 3 (versi 3.5 dan lebih tinggi). Dengan RHEL 7, kami memiliki Python 2.7 terinstal secara default, dan dengan RHEL 8, kami memiliki Python 3.6 secara default. Untuk menggunakan semua modul Ansible, Anda juga perlu menginstal Python pada node yang dikelola. Secara default, Ansible menggunakan SSH untuk berkomunikasi dengan node yang dikelola. Node yang dikelola juga dapat menggunakan SFTP atau SCP untuk komunikasi, dan ini dapat dimodifikasi dalam file konfigurasi Ansible (ansible.cfg ).

Jika Anda menggunakan RHEL Satellite untuk menginstal Ansible pada sistem RHEL 8, pastikan Anda menambahkan repositori untuk Red Hat Ansible Engine 2.9 untuk RHEL 8 x86_64 (RPM) dari GUI Satelit dan menyinkronkan repositori dari CDN ke Satelit. Pada node kontrol, Anda harus mendaftar ke server Satelit, mengaktifkan alat Satelit, dan mengaktifkan repositori Ansible dengan menggunakan perintah berikut:

# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.

# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.

Menginstal Ansible di RHEL

Untuk menginstal Ansible pada node kontrol RHEL 8 setelah mendaftar ke server Satelit, jalankan perintah yum install ansible . Perintah ini menginstal enam paket:

  1. Instal Ansible dari repo Ansible:
    1. Mungkin
  2. Instal dependensi:
    1. sshpass
    2. Python3-markupsafe
    3. Python3-jinja2
    4. Python3-babel
  3. Instal ketergantungan yang lemah:
    1. Python3-jmespath

Setelah instalasi, jalankan ansible --version perintah untuk memeriksa versi Ansible yang diinstal.

# ansible --version

ansible 2.9.6

 config file = /etc/ansible/ansible.cfg

 configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

 ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible

 executable location = /usr/local/bin/ansible

 python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

Setelah instalasi, Anda dapat membuat perubahan pada pengaturan Ansible default dengan memodifikasi parameter di ansible.cfg berkas.

[ Anda mungkin juga senang membaca: Memperbarui gairah saya di tempat kerja dengan Ansible ]

Menyiapkan Memungkinkan untuk otomatisasi

Sekarang Ansible telah terinstal, Anda harus mengonfigurasi otentikasi berbasis kunci SSH (yang menggunakan kriptografi asimetris) dari node kontrol ke node terkelola agar Ansible dapat bekerja dengan mulus. Anda perlu membuat pasangan kunci pada node kontrol Anda dan mentransfer kunci publik ke node yang dikelola. Gunakan perintah ssh-keygen untuk menghasilkan pasangan kunci. Kunci disimpan di direktori home Anda di dalam .ssh map. Kunci default bernama id_rsa.pub (kunci publik) dan id_rsa (kunci pribadi). Untuk mengaktifkan otentikasi berbasis kunci SSH pada node yang dikelola, jalankan perintah berikut pada node kontrol Anda:

# ssh-copy-id <target user>@<IP address/Hostname of the managed node>

Perhatikan bahwa ini akan memerlukan kata sandi satu kali untuk pengguna target di node terkelola. Perintah ssh-copy-id akan menyalin kunci publik node kontrol ke authorized_keys file pada node yang dikelola.

Setelah dikonfigurasi, Anda dapat menambahkan node jarak jauh ke file inventaris dan melakukan tes ping menggunakan perintah Ansible ad-hoc berikut:

# ansible all -m ping -i <inventory-file>

Selengkapnya tentang playbook

Playbook adalah file tempat fungsi Ansible ditulis. Buku pedoman ditulis dalam format YAML. YAML adalah singkatan dari Yet Another Markup Language. Playbook adalah salah satu fitur inti Ansible dan memberi tahu Ansible apa yang harus dijalankan. Mereka seperti daftar tugas untuk Ansible yang berisi serangkaian tugas. Playbook adalah blok bangunan untuk semua kasus penggunaan Ansible. Anda dapat membuat buku pedoman Ansible modular independen untuk setiap tindakan. Anda dapat menggabungkan buku pedoman modular ini ke dalam satu buku pedoman master menggunakan modul import_playbook . Ini memastikan penggunaan kembali buku pedoman. Anda dapat menggunakan variabel dalam buku pedoman dan meneruskan variabel-variabel ini dari inventaris Ansible, file yang disertakan, dan selama runtime. Beberapa fitur utama dari buku pedoman Ansible meliputi:

  • Kemampuan untuk menjalankan tugas sebagai pengguna yang berbeda berdasarkan menjadi metode
  • Kontrol tempat untuk menjalankan setiap tugas berdasarkan host di inventaris Anda
  • Tentukan conditional dan loop dalam kode Anda

Contoh:

Selengkapnya tentang inventaris

Inventaris adalah daftar node yang dapat dikelola oleh Ansible. Anda dapat menentukan host terkelola individual atau membuat grup host di file inventaris. Untuk setiap host terkelola, Anda dapat menetapkan variabel yang dapat digunakan oleh pedoman saat menjalankan tugas pada host tertentu. File inventaris default adalah /etc/ansible/hosts , tetapi Anda disarankan untuk membuat file inventaris Anda sendiri dan memanggilnya selama eksekusi buku pedoman menggunakan -i pilihan perintah. File inventaris dapat dalam format INI atau YAML. Anda dapat menyimpan file inventaris statis atau daftar host dinamis.

Contoh:

# cat hosts-b2b

[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3

[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5

[dbservers]
b2bmasterdb
b2bslavedb

Kasus penggunaan yang memungkinkan

Mari kita jelajahi kasus penggunaan Ansible untuk pemantauan sistem. Kami dapat membuat buku pedoman untuk berbagai tugas pemantauan terkait sysadmin, termasuk:

  • Pemantauan penggunaan sistem file dan email peringatan jika ruang disk digunakan lebih dari 90%
  • Aplikasi dan ketersediaan port
  • Ketersediaan basis data dengan menghubungkan dan membuat kueri basis data
  • Ketersediaan URL dengan menggunakan uri modul dan peringatan email jika kode pengembalian lebih besar dari 200. Anda juga dapat menggunakan fitur coba ulang dan tunda di uri modul untuk memastikan dua kali
  • Ketersediaan layanan, laporkan jika layanan tidak aktif, dan coba mulai ulang
  • Periksa versi komponen untuk menyimpan inventaris terbaru
  • Pantau waktu aktif sistem dan kirim peringatan email jika sistem tidak dapat diakses

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

Menutup

Artikel ini memberi Anda gambaran umum tentang penginstalan Ansible, menyiapkan Ansible, membuat buku pedoman, dan mengelola inventaris dengan contoh. Nantikan artikel lainnya tentang otomatisasi menggunakan Ansible.


Linux
  1. Panduan terminal Linux untuk pemula

  2. Demystifying Memungkinkan untuk sysadmin Linux

  3. 5 tips rsync tingkat lanjut untuk sysadmin Linux

  1. 10 Modul yang memungkinkan untuk otomatisasi sistem Linux

  2. Panduan Lengkap untuk Menggunakan AsciiDoc di Linux

  3. 30 Latihan Proses Linux Untuk Sysadmin

  1. Panduan pemula untuk SSH untuk koneksi jarak jauh di Linux

  2. Apa Itu Linux? Panduan untuk Pengguna Non-teknis

  3. 80 Alat Pemantauan Linux untuk SysAdmins