Mengonfigurasi dan menerapkan aplikasi pada satu server biasanya merupakan tugas yang sederhana. Namun, dalam lingkungan TI yang kompleks dengan banyak server, ini bisa menjadi tugas yang menakutkan dan memakan waktu. Dikembangkan dan dikelola oleh RedHat, Ansible adalah konfigurasi server sumber terbuka dan alat penyediaan perangkat lunak yang menyederhanakan penerapan aplikasi dan manajemen konfigurasi. Ini mengangkat beban tim operasi TI dan mengotomatiskan konfigurasi server dan penerapan aplikasi dengan cara yang sederhana dan efektif.
Dibandingkan dengan rekan-rekannya seperti koki dan boneka, Ansible adalah alat yang paling banyak digunakan karena tidak memerlukan agen untuk berkomunikasi dengan host jarak jauh. Ansible memanfaatkan protokol SSH untuk berkomunikasi dengan target jarak jauh, dan dengan demikian, sumber daya CPU dari host jarak jauh tetap tidak terpengaruh.
Penyiapan Lab yang Memungkinkan
Untuk lingkungan pengujian kami, kami memiliki dua node:node kontrol tempat Ansible akan diinstal dan host jarak jauh yang akan dikonfigurasi dari node kontrol Ansible:
Node kontrol yang memungkinkan IP 192.168.2.101 Ubuntu 20.04
Host jarak jauh IP 192.168.2.104 Ubuntu 20.04
Selain itu, pastikan Anda memiliki pengguna sudo dikonfigurasi pada node kontrol Ansible dan bahwa daemon SSH berjalan di kedua node.
Tanpa basa-basi lagi, mari kita sentuh dasar tentang cara menginstal Ansible di Ubuntu 20.04
Langkah 1:Instal Ansible
Langsung saja, masuk ke server master Ansible dan instal Ansible sebagai pengguna sudo sebagai berikut.
$ sudo apt install ansible
Ini menginstal Ansible bersama sejumlah paket Python3 yang penting agar Ansible dapat berjalan tanpa masalah.
Setelah diinstal, Anda dapat mengonfirmasi versi Ansible seperti yang ditunjukkan.
Output memberikan beberapa informasi yang luas. Ini menampilkan versi Ansible – dalam hal ini, Ansible 2.9.6 – modul dan jalur eksekusi Ansible serta versi Python yang diinstal pada sistem Anda.
File konfigurasi – ansible.cfg – adalah file konfigurasi Ansible yang terletak di /etc/ansible direktori. Pengaturan menentukan bagaimana Ansible berjalan dan berinteraksi dengan klien jarak jauh. Selain itu, direktori berisi file inventaris yang disebut hosts. Di sinilah host jarak jauh atau terkelola didefinisikan. Saat kita bekerja keras dalam tutorial ini, kita akan mendefinisikan host jarak jauh dalam file inventaris ini.
Langkah 2:Siapkan login SSH tanpa kata sandi
Protokol SSH menyediakan dua metode otentikasi:kata sandi dan otentikasi kunci publik/pribadi. Dengan menggunakan kunci SSH, kita akan menyiapkan metode login ssh tanpa kata sandi untuk menyediakan cara yang lebih aman dan nyaman untuk berinteraksi dengan host jarak jauh. Metode login SSH tanpa kata sandi memberikan cara yang mulus untuk berinteraksi dengan host karena kami tidak perlu memberikan kata sandi saat menjalankan file playbook.
Untuk mengatur login SSH tanpa kata sandi, pertama-tama kita akan membuat pasangan kunci SSH seperti yang ditunjukkan:
$ ssh-keygen
Tekan ENTER sepenuhnya untuk menerima saran default.
Pasangan kunci SSH mencakup kunci pribadi dan publik. Kami memiliki id_rsa yang merupakan kunci pribadi. Juga, kami memiliki id_rsa.pub yang merupakan kunci publik.
Selanjutnya, kita akan menyalin kunci publik ke host jarak jauh menggunakan pengguna root sebagai pengguna host jarak jauh.
CATATAN
Sebelum menyalin file kunci publik ssh, kami akan mengonfigurasi pengguna jarak jauh di file konfigurasi Ansible seperti yang ditunjukkan.
$ sudo vim /etc/ansible/ansible.cfg
Setel pengguna jarak jauh ke root.
remote_user=root
Simpan file.
Selanjutnya, buka host jarak jauh dan aktifkan login root jarak jauh dengan mengedit /etc/ssh/ssh_config berkas.
$ sudo vim /etc/ssh/ssh_config
Tambahkan baris di bawah
PermitRootLogin yes
Sekali lagi, simpan dan keluar.
Sekarang kita dapat melanjutkan dan menyalin kunci publik SSH ke host jarak jauh seperti yang ditunjukkan.
$ ssh-copy-id [email protected]
Jika Anda masuk untuk pertama kali sebagai pengguna root, Anda akan mendapatkan prompt seperti yang ditunjukkan pada gambar di bawah ini. Cukup ketik 'ya' untuk melanjutkan koneksi. Setelah Anda memberikan kata sandi root host jarak jauh, kunci SSH akan ditambahkan ke direktori home root.
Untuk login berikutnya, Anda tidak akan diminta untuk memberikan kata sandi. Untuk memverifikasi ini, keluar dari host jarak jauh dan coba masuk sekali lagi.
$ ssh [email protected]
Ini secara otomatis membawa Anda ke shell host jarak jauh seperti yang ditunjukkan.
Sempurna! Pengaturan login SSH tanpa kata sandi kami selesai. Sekarang kita akan membuat file playbook yang akan menginstal server web Apache.
Langkah 3:Tambahkan host jarak jauh di file konfigurasi Ansible
Selanjutnya, kami akan mendefinisikan host jarak jauh kami di file inventaris Ansible yang, secara default, adalah /etc/ansible/hosts mengajukan. Jadi, buka file tersebut.
$ sudo vim /etc/ansible/hosts
File host terstruktur dalam format INI. Kami akan menambahkan alamat IP dari host kami di bawah server web nama grup.
[webservers]
192.168.2.104
Simpan file inventaris dan tutup. Untuk memverifikasi host yang ditentukan dalam file inventaris, jalankan:
$ ansible webservers --list-hosts
Atau, untuk memeriksa semua host di semua grup host, jalankan:
$ ansible all --list-hosts
Sekarang kita akan menguji keberadaan modul Ansible Python pada host jarak jauh.
$ ansible -m ping webservers
CATATAN:
ping modul bukan perintah ping ICMP. Ini hanya tes sepele untuk memeriksa apakah modul Python3 diinstal dan keberadaan SSH.
Output di bawah ini menunjukkan bahwa perintah itu berhasil. Outputnya juga menampilkan IP dari host jarak jauh yang ditentukan di bawah server web kelompok. Jika Anda memiliki beberapa host yang ditentukan dalam beberapa grup, gunakan semua pilihan.
$ ansible -m ping all
Langkah 4:Buat file playbook untuk mengonfigurasi host jarak jauh
Dengan host jarak jauh yang ditentukan, sekarang kita akan membuat file playbook untuk menginstal server web Apache. File playbook adalah file YAML di Ansible yang menetapkan tugas yang harus dilakukan di host jarak jauh.
$ sudo vim /etc/ansible/apache.yml
File playbook didefinisikan di bawah ini. Perhatikan bahwa file dimulai dengan 3 tanda hubung ( — ). Perhatikan juga lekukannya.
Terakhir, jalankan file playbook sebagai berikut.
$ ansible-playbook /etc/ansible/apache.yml
Selama runtime, playbook melakukan tugas dengan cermat dan menampilkan setiap tindakan di terminal. Ini menginstal server web Apache dan memulai layanan.
Untuk mengonfirmasi bahwa server web berhasil diinstal, luncurkan browser dan jelajahi IP host jarak jauh seperti yang ditunjukkan:
http://server-ip/
Ringkasan
Ansible adalah alat otomatisasi yang banyak digunakan di DevOps dan digunakan oleh ribuan pengembang dan sysadmin untuk mengonfigurasi dan menyebarkan aplikasi di server. Ini menghemat waktu dan meminimalkan upaya yang diperlukan untuk menangani banyak server dalam infrastruktur TI yang kompleks. Kami berharap Anda dapat menginstal dan mengonfigurasi Ansible dengan nyaman di Ubuntu 20.04.