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:
- Anda tidak dapat menggunakan windows sebagai node pengontrol.
- 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.
- Menggunakan pengelola paket sistem operasi
- 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.
Ansible.cfg
- file konfigurasi yang memungkinkan.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