GNU/Linux >> Belajar Linux >  >> Linux

Instal Dan Konfigurasikan Ansible Di Linux

Panduan langkah demi langkah ini memandu Anda melalui langkah-langkah untuk menginstal dan mengkonfigurasi Ansible di Linux. Ini juga menjelaskan cara menyiapkan homelab Ansible di Linux untuk mempelajari dasar-dasar yang memungkinkan.

1. Pendahuluan

Ansible adalah alat otomatisasi TI di mana Anda dapat mengotomatiskan sejumlah tugas "N" di lingkungan perangkat lunak Anda. Untuk mengetahui apa itu Ansible dan fitur-fiturnya, lihat "Pengantar Ansible" panduan.

Ansible jelas dirancang untuk manajemen konfigurasi dalam skala besar. Jika tujuan Anda adalah belajar dan mampu menciptakan kembali lingkungan Anda dengan cepat, maka Anda berada di jalur yang benar!

Ansible adalah tanpa agen Arsitektur. Artinya - tidak ada agen/proses yang mungkin berjalan pada node yang dikelola.

Seperti yang sudah saya sebutkan di artikel pengantar Ansile, ada dua jenis node di ansible.

  • Node Master/Pengontrol - Server/Workstation yang memungkinkan akan diinstal. Dari simpul ini, Anda akan menjalankan semua buku pedoman dan perintah yang memungkinkan.
  • Node Terkelola - Daftar host yang akan dikelola menggunakan yang memungkinkan.

Semua node terkelola tidak perlu dijalankan dengan versi atau jenis distribusi yang sama. Anda dapat memiliki varian Linux yang berbeda sebagai node terkelola.

Komunikasi antara pengontrol dan node yang dikelola akan dilakukan menggunakan otentikasi berbasis kunci ssh .

Panduan praktis ini akan mengajari Anda cara menyiapkan lab Ansible di distribusi Linux.

Catatan:

  1. Anda tidak dapat menggunakan windows sebagai node pengontrol.
  2. Dimungkinkan untuk mengonfigurasi beberapa node pengontrol.

Sebelum memulai dengan Ansible, izinkan saya menunjukkan representasi bergambar dari penyiapan homelab Ansible saya.

2. Diagram arsitektur untuk lab yang memungkinkan 3 simpul

Ilustrasi grafis berikut memberi Anda representasi bergambar yang bagus tentang bagaimana lab akan terlihat.

Untuk tujuan demonstrasi, saya menyiapkan node Controller di Ubuntu 20.04 dan 2 node yang dikelola di CentOS 8 dan Ubuntu 21.04.

3. Instal Dan Konfigurasi Ansible Di Linux

Pertama, kita akan melihat cara mengatur Ansible Managed node di Linux.

3.1. Instal Ansible di Linux

Karena Ansible ditulis dengan Python, mesin Linux Anda harus memiliki python yang diinstal agar memungkinkan untuk bekerja.

Untungnya semua distribusi Linux dilengkapi dengan Python yang sudah diinstal sebelumnya. Ansible mendukung Python 2.7 dan Python 3.5 dan di atasnya.

Untuk memeriksa versi python apa yang diinstal pada mesin Anda, Anda dapat menggunakan perintah berikut. Outputnya dapat bervariasi tergantung pada bagaimana python diatur dalam distribusi Anda.

$ which python python2 python3
/usr/bin/python2
/usr/bin/python3

Periksa versi Python:

$ python2 --version
Python 2.7.18rc1
$ python3 --version
Python 3.8.5
$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7

Anda dapat menginstal ansible di Linux dengan dua cara.

  1. Menggunakan pengelola paket sistem operasi
  2. Menggunakan PIP - Manajer paket Python

3.1.1. Instal Ansible menggunakan manajer paket sistem

Pertama, akan melihat bagaimana menggunakan manajer paket distribusi Anda untuk menginstal memungkinkan. Berdasarkan distribusi Linux Anda, jalankan perintah berikut.

Instal Ansible di Arch Linux, EndeavourOS, Manjaro Linux:

$ sudo pacman -S ansible

Debian:

Edit /etc/apt/sources.list berkas:

$ sudo nano /etc/apt/sources.list

Tambahkan baris berikut:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Kemudian jalankan perintah berikut:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Fedora:

$ sudo dnf install ansible

CentOS, RHEL, AlmaLinux, Rocky Linux:

$ sudo dnf install epel-release
$ sudo dnf install ansible

Ubuntu dan turunannya:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Distribusi Anda mungkin dikirimkan dengan Ansible versi lama. Jika Anda ingin menginstal versi Ansible yang diperbarui di sistem Anda, Anda dapat menggunakan Pip , pengelola paket python.

3.1.2. Instal Ansible menggunakan Pip

Pertama, verifikasi apakah PIP diinstal dengan menjalankan perintah berikut:

$ which pip pip3
/usr/bin/pip
/usr/bin/pip3
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Jika PIP tidak diinstal, jalankan perintah berikut untuk menginstalnya.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Setelah PIP diinstal, jalankan perintah berikut untuk menginstal yang memungkinkan:

$ sudo python3 -m pip install ansible

Ini akan menginstal versi Ansible terbaru.

Anda juga dapat menginstal versi Ansible tertentu, misalnya 2.9, seperti di bawah ini:

$ sudo python3 -m pip install 'ansible==2.9'

Setelah menginstal Ansible, jalankan perintah berikut untuk memeriksa versi yang memungkinkan:

$ ansible --version

Perintah ini memberikan informasi tentang di mana file host Anda, file konfigurasi, dan file biner ansible dan versi Ansible mana yang diinstal.

Contoh keluaran:

ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/karthick/.ansible/plugins/modules',
  '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

3.2. Konfigurasi Ansible

Seperti yang dinyatakan sebelumnya, Ansible akan berkomunikasi dengan node yang dikelola menggunakan ssh protokol otentikasi.

Kami akan membuat ssh keypair dan mendistribusikannya ke semua node yang dikelola. Jadi, setiap kali perintah yang memungkinkan dikirimkan, itu akan mengautentikasi dengan node terkelola menggunakan kunci ini.

3.2.1. Buat pasangan kunci SSH untuk node terkelola

Buat pengguna baru bernama mungkin di node pengontrol dan terkelola.

$ sudo useradd ansible               ##create user 
$ sudo passwd ansible                ##set password for ansible user.

Masuk/Beralih sebagai pengguna yang memungkinkan dan buat pasangan kunci ssh menggunakan perintah:

$ su - ansible
$ ssh-keygen -t rsa

Perintah ini akan menghasilkan sepasang kunci SSH.

Sekarang distribusikan kunci publik ke semua node yang dikelola.

Anda dapat menggunakan ssh-copy-id perintah untuk menyalin kunci publik ke node target.

Untuk menyalin kunci publik ke node target dengan perintah ssh-copy-id, jalankan:

$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]

Jika Anda memiliki lebih banyak node, gunakan for loop untuk menyalin kunci ssh ke semua node target.

Untuk tujuan panduan ini, saya memiliki 2 node terkelola dan menamakannya centos1 (centos8) dan ubuntu1 (ubuntu 20.04). Untuk menyalin kunci ke kedua node, saya menggunakan kode berikut:

$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]${node} done

Sekarang login ke node terkelola Anda untuk memeriksa apakah otentikasi berbasis kunci berfungsi dengan baik.

$ ssh [email protected]

Sekarang pengaturan yang memungkinkan selesai. Sebagai langkah selanjutnya, file inventaris harus dibuat dan menjalankan beberapa perintah yang memungkinkan terhadap host yang dikelola.

3.2.2. Uji konfigurasi yang memungkinkan

Ansible memiliki dua file penting yang harus dikirimkan Adhoc atau buku pedoman perintah.

  1. Ansible.cfg - file konfigurasi yang memungkinkan.
  2. Hosts - File inventaris tempat detail host disediakan.

Nah, bahas lebih mendalam tentang konfigurasi dan file inventory di artikel tersendiri. Saat ini untuk menjalankan perintah pertama yang memungkinkan, Anda hanya perlu menambahkan hostname node terkelola di file inventaris.

File konfigurasi yang memungkinkan terletak di /etc/ansible/ansible.cfg mengajukan. Anda juga bisa mendapatkan detail ini dengan menjalankan ansible version perintah:

$ ansible --version
ansible 2.9.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
 executable location = /usr/local/bin/ansible
 python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

Buka ansible.cfg file dan cari inventaris parameter. Parameter ini akan dirujuk oleh kemungkinan selama run time untuk mendapatkan jalur file inventaris.

$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory        = /etc/ansible/hosts

Inventaris secara default menunjuk ke /etc/ansible/hosts mengajukan. Buka hosts file dan tambahkan nama host/alamat Ip node yang dikelola.

Saya memiliki pemetaan DNS ke IP, jadi saya telah memberikan nama dns di file host. Anda juga dapat memberikan alamat IP.

Semuanya sudah diatur untuk menjalankan tugas kita dengan mungkin!

Mirip dengan "Hello world" program dalam pemrograman, mungkin juga memiliki tradisi menjalankan ping module sebagai perintah pertama untuk memeriksa konektivitas antara pengontrol dan node yang dikelola.

ping modul akan mencoba menjangkau node yang dikelola dan memeriksa apakah ada juru bahasa python yang tersedia untuk digunakan dan ditanggapi sebagai pong .

$ ansible all -m ping

Anda juga dapat secara eksplisit menentukan file host menggunakan -i tandai seperti di bawah ini:

$ ansible all -m ping -i flag <path-to-host-file>

Sekarang Anda dapat mulai bermain dengan modul apa pun yang ingin Anda mainkan.

Jika Anda ingin menambahkan lebih banyak node pengontrol, yang harus Anda lakukan adalah menyalin kunci SSH dari node pengontrol ke node baru dan menambahkan entri IP/DNS di file host. Dan kemudian, mungkin dapat mulai mengambil node terkelola yang baru ditambahkan. Sesederhana itu!

Kesimpulan

Dalam panduan ini, kami membahas cara menginstal dan mengkonfigurasi Ansible di Linux. Kami juga telah menunjukkan cara menyiapkan homelab Ansible tiga simpul secara manual.

Ada solusi otomatis lainnya seperti menyiapkan lab yang memungkinkan menggunakan Vagrant atau Docker . Kami akan membahas topik tersebut di artikel kami yang akan datang.

Ansible adalah topik yang luas! Kami hanya membahas dasar-dasar Ansible. Lihat dokumentasi resmi Ansible untuk mengetahui lebih banyak tentang penggunaan Ansible.

Baca Selanjutnya:

  • Pengaturan Lab Otomatis Dengan Vagrant Dan Virtualbox Di Linux
  • File Inventaris dan Konfigurasi yang Memungkinkan

Linux
  1. Cara Menginstal dan Mengonfigurasi Ansible di Fedora 35

  2. Cara Menginstal dan Mengonfigurasi Ansible di Rocky Linux/CentOS 8

  3. 12 Langkah Install dan Konfigurasi Alfresco di UNIX / Linux

  1. Cara Menginstal dan Mengonfigurasi Ansible di Windows

  2. Cara Menginstal dan Menguji Ansible di Linux

  3. Cara Menginstal dan Mengonfigurasi EMC PowerPath di Linux

  1. Cara menginstal dan mengkonfigurasi Ansible di Redhat Enterprise Linux 8

  2. Cara menginstal dan mengkonfigurasi Nagios di Linux

  3. Cara Menginstal dan Mengkonfigurasi Memcached di Ubuntu Linux