GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal dan Menguji Ansible di Linux

Ansible adalah alat manajemen konfigurasi yang banyak digunakan yang ditulis dalam bahasa Python yang membantu mengonfigurasi satu atau beberapa mesin secara bersamaan. Ansible dapat digunakan untuk melakukan tugas-tugas di bawah ini

  • Konfigurasi dari awal satu atau beberapa node
  • Penerapan
  • Perubahan konfigurasi
  • Menambal
  • Manajemen layanan
  • dan banyak lagi

Ansible banyak digunakan karena kesederhanaannya. Kode yang memungkinkan ditulis dalam bahasa YAML juga, tidak memerlukan agen untuk diinstal pada mesin jarak jauh. Ansible menggunakan port 22 (SSH) untuk terhubung ke mesin jarak jauh dan membuat perubahan yang diperlukan.

Setiap mesin, yang dapat terhubung ke mesin jarak jauh pada port 22 dapat menjadi node pengendali. Node pengontrol adalah tempat Anda dapat menginstal Ansible dan node terkelola dikelola dengan mengontrol node.

Mari kita lihat instalasi Ansible pada node controller.

Instal Ansible di CentOS 7: 

Karena Python adalah satu-satunya prasyarat untuk menginstal Ansible, mari instal Python dengan menjalankan perintah di bawah ini.

$sudo yum install python3 -y

Untuk menginstal Ansible di CentOS 7, pastikan terlebih dahulu bahwa repositori CentOS 7 EPEL telah diinstal. Jalankan perintah di bawah ini untuk menginstal repositori epel.

$sudo yum install epel-release

Perbarui indeks paket sistem dengan menjalankan perintah pembaruan di bawah ini.

$sudo yum update -y

Setelah repositori diinstal, instal Ansible dengan manajer paket yum. Jalankan perintah yang disebutkan di bawah ini untuk menginstal Ansible.

$sudo yum install ansible -y

Verifikasi apakah Ansible diinstal dengan benar dan versinya.

$ansible -v

Instal Ansible di CentOS 8:

Mari kita lihat langkah-langkah instalasi CentOS 8. Mari kita instal python di CentOS 8.

$sudo dnf install python3

Setelah python terinstal, mari kita instal repo EPEL dengan menjalankan perintah di bawah ini.

$sudo dnf install epel-release -y

Perbarui indeks paket sistem dengan menjalankan perintah pembaruan di bawah ini.

$sudo dnf update -y

Kami sekarang siap untuk menginstal Ansible. Jalankan perintah di bawah ini untuk menginstal Ansible.

$sudo dnf install ansible -y

Verifikasi apakah Ansible diinstal dengan benar dan versinya.

$ansible -v

Instal Ansible di Ubuntu:

Python adalah paket default saat ini di sebagian besar distribusi Linux. Jika Anda belum menginstal python, jalankan perintah di bawah ini untuk menginstal paket python.

$sudo apt-get install python3

Untuk menginstal Ansible di Ubuntu, pertama-tama instal repositori dengan menjalankan perintah di bawah ini.

$sudo apt-add-repository ppa:ansible/ansible

Perbarui indeks paket sistem dengan menjalankan perintah pembaruan di bawah ini.

$sudo apt-get update -y

Sekarang, instal Ansible.

$sudo apt-get install -y ansible

Verifikasi apakah Ansible diinstal dengan benar dan versinya.

$ansible -v

Instal Ansible dengan Python PIP di CentOS, Debian dan Ubuntu:

Terlepas dari sistem operasi apa yang Anda gunakan, Anda dapat menginstal Ansible dengan penginstal paket python. Mari kita jalankan perintah di bawah ini untuk menginstal python3-pip.

Untuk CentOS 7 dan di bawahnya:

$sudo yum install python3 python3-pip -y

Untuk CentOS 8:

$sudo dnf install python3 python3-pip -y

Untuk Ubuntu dan Debian:

$sudo apt-get install python3 python3-pip

Karena kita telah menginstal python dan pip, mari jalankan perintah di bawah ini pada sistem operasi apa pun untuk menginstal Ansible.

$sudo pip3 install ansible

Verifikasi apakah Ansible diinstal dengan benar dan versinya.

$ansible -v

Mengonfigurasi Host Pengontrol yang Memungkinkan:

Kita perlu mengatur file "hosts" terlebih dahulu sebelum kita dapat mulai berkomunikasi dengan node kita yang lain. File ini akan memiliki semua IP atau nama host dari node yang dikelola.

Catatan :Tidak selalu perlu menggunakan file host untuk terhubung ke node yang dikelola. Tapi kemudian setiap kali, kita perlu menggunakan IP server node terkelola atau nama host saat menjalankan setiap perintah.

Buat file (jika belum ada) dengan hak akses root dengan menjalankan perintah di bawah ini:

$sudo touch /etc/ansible/hosts

Sebelum menulis ke file, mari kita lihat dan pahami contoh file host:

[group_name]
alias ansible_ssh_host=your_node_server_ip

File host harus mengikuti sintaks di atas. Mari kita lihat setiap parameter.

[nama_grup] :Parameter ini akan membuat grup. Semua alamat IP node yang dikelola atau nama host di bawah parameter group_name akan termasuk dalam grup yang sama. Misalnya, jika kami memiliki beberapa server web dalam infrastruktur kami, kami dapat menambahkan semua alamat IP atau nama host dari node yang dikelola di sini.

alias :Parameter ini digunakan untuk memberikan server node yang dikelola sebuah alias untuk mengidentifikasi server node yang dikelola. Misalnya, jika kami memiliki beberapa server web di infrastruktur kami, kami dapat memberikan host1, host2, host3 sebagai alias. Keuntungan utama dari pemberian alias adalah ketika kita akan menjalankan perintah Ansible untuk mengubah konfigurasi server tunggal, kita dapat menggunakan alias untuk mengidentifikasi dan melakukan tugas yang diperlukan di server.

ansible_ssh_host=your_node_server_ip :Parameter ini akan mengarahkan alias ke alamat IP node terkelola atau nama host.

Kami akan menggunakan CentOS 8 sebagai node terkontrol dengan Ansible. Seperti disebutkan di atas, Ansible menggunakan 22 port host jarak jauh untuk terhubung.

Kami akan mengasumsikan bahwa alamat IP server node terkelola CentOS kami adalah 192.168.0.2, 192.168.0.3 dan 192.168.0.4.

Untuk mengizinkan node pengontrol Ansible untuk berkomunikasi dengan node yang dikelola, kita harus mengonfirmasi bahwa node yang dikelola dapat diakses pada port 22 yang merupakan port SSH. Jalankan perintah di bawah ini untuk mengonfirmasi konektivitas satu per satu pada ketiga node yang dikelola dari pengontrol.

$ssh [email protected]192.168.0.2
$ssh [email protected]192.168.0.3
$ssh [email protected]192.168.0.4

Anda akan dimintai kata sandi pengguna root dari semua node. Ansible bekerja dengan sangat lancar jika Anda memiliki autentikasi tanpa sandi yang dikonfigurasi antara pengontrol Ansible dan node terkelola. Dengan parameter yang berbeda dalam perintah Ansible, autentikasi sandi juga dapat berfungsi.

Karena kita telah mengonfigurasi konektivitas ssh antara Ansible controller dan node terkelola, mari konfigurasikan file host untuk terhubung ke semua node terkelola. Seperti yang disebutkan sebelumnya, kita dapat menambahkan beberapa alias server node dalam satu grup. Dalam hal ini, mari tambahkan ketiga node dan tetapkan alias masing-masing sebagai host1, host2, dan host3. File host kami akan terlihat seperti di bawah ini setelah menambahkan semua detail node yang dikelola. Jalankan perintah di bawah ini untuk mengedit file host yang telah kita buat sebelumnya.

Buka file dengan hak akses root dengan menjalankan perintah di bawah ini:

$sudo vi /etc/ansible/hosts

Mari tambahkan konfigurasi yang disebutkan di bawah ini di file hosts.

[node_servers]
host1 ansible_ssh_host=192.168.0.2
host2 ansible_ssh_host=192.168.0.3
host3 ansible_ssh_host=192.168.0.4

Di sini, kami telah menambahkan semua IP node terkelola dan alias dalam grup yang disebut node_servers .

Mari coba hubungkan ke node terkelola dari Ansible controller sekarang.

$ansible -m ping node_servers

Perintah di atas menggunakan ping modul untuk terhubung ke grup "node_servers" yang kami definisikan dalam file host di atas.

Anda mungkin mengalami error karena berbagai alasan.

  1. Asible akan, secara default, mencoba terhubung ke node terkelola menggunakan nama pengguna Anda saat ini jika Anda tidak memberikannya. Jika pengguna tersebut tidak ada di server node, Anda akan menerima error di bawah.
  2. Jika ssh port 22 tidak terbuka untuk koneksi pada node terkelola. (Seperti yang disebutkan sebelumnya, Ansible terhubung pada port ssh)
  3. Jika IP di file host salah.

Jika salah satu dari kondisi di atas gagal, Anda akan menemukan kesalahan di bawah ini.

host1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host2 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host3 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

Mari kita beri tahu Ansible secara khusus bahwa itu harus terhubung ke node yang dikelola di grup "node_servers" dengan pengguna james. Buat direktori group_vars seperti yang disebutkan di bawah ini.

$sudo mkdir /etc/ansible/group_vars

File dalam direktori ini secara khusus digunakan untuk mengonfigurasi variabel yang dapat kami gunakan di buku pedoman Ansible kami.

Mari kita buat file variabel untuk pengaturan kita dengan menjalankan perintah di bawah ini:

$sudo vim /etc/ansible/group_vars/node_servers.yml


Tambahkan kode di bawah ini ke file:

---
ansible_ssh_user: james

File YML selalu dimulai dengan "---" di baris pertama. Mari kita simpan dan tutup file ini setelah Anda selesai. Sekarang Ansible akan selalu menggunakan james pengguna untuk grup node_servers, terlepas dari pengguna saat ini yang Anda gunakan untuk menjalankan perintah.

Periksa koneksi node terkelola:

Sekarang setelah kita menyiapkan host dan detail konfigurasi yang cukup untuk memungkinkan kita berhasil terhubung ke node terkelola, kita dapat mencoba perintah yang sama yang kita jalankan sebelumnya.

$ansible -m ping servers 

Ansible akan mengembalikan output seperti ini:

host1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
host2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

host3 | SUKSES => {
    "berubah":false,
    "ping":"pong"
}

Ini adalah tes dasar untuk memastikan bahwa Ansible memiliki koneksi ke node yang dikelolanya.

Kesimpulan: 

Tidak perlu menggunakan sistem operasi CentOS untuk node yang dikelola. Anda dapat menggunakan konfigurasi pengujian yang sama yang telah kami gunakan di atas untuk CentOS, RedHat, Ubuntu, dan distribusi Linux lainnya.


Linux
  1. Cara Menginstal Dan Menggunakan Flatpak Di Linux

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

  3. Cara Menginstal Ansible di Oracle Linux 8

  1. Cara menginstal Elasticsearch dan Kibana di Linux

  2. Cara Menginstal dan Menggunakan Traceroute di Linux

  3. Cara menginstal Ansible di CentOS 8 Linux

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

  2. Cara menginstal dan menggunakan telnet di Kali Linux

  3. Bagaimana Cara Menginstal dan Menggunakan Layar Linux?