Fabric - Jalankan Perintah Shell dari Jarak Jauh Melalui SSH di Linux


Dalam dunia pengembangan perangkat lunak yang terus berubah, manajemen server jarak jauh yang efisien sangatlah penting. Baik Anda seorang administrator sistem, insinyur perangkat lunak, atau pengembang perangkat lunak, kemampuan menjalankan perintah Linux di server jarak jauh adalah tugas yang umum.

Di sinilah Fabric, pustaka Python tingkat tinggi yang dirancang untuk menjalankan perintah Linux dari jarak jauh melalui SSH, menjadikannya alat yang sangat diperlukan bagi siapa saja yang perlu mengelola sistem jarak jauh saat memanfaatkan kekuatan Python.

Apa itu Kain?

Fabric adalah pustaka Python serbaguna yang menyederhanakan proses menjalankan perintah shell di server jarak jauh melalui koneksi SSH. Awalnya dikembangkan oleh Jeff Forcier dan kemudian menjadi proyek sumber terbuka.

Ini menyediakan antarmuka Pythonic tingkat tinggi untuk bekerja dengan sistem jarak jauh, memungkinkan Anda mengotomatiskan tugas, menerapkan kode, dan mengelola konfigurasi di beberapa server dengan mudah.

Mengapa Menggunakan Kain?

Ada beberapa alasan kuat untuk memilih Fabric untuk kebutuhan eksekusi perintah jarak jauh Anda:

  • Pendekatan Pythonic – Fabric menganut filosofi Python, sehingga memudahkan pengembang dan administrator sistem untuk menulis skrip dalam bahasa yang sudah mereka kenal.
  • SSH dan Paramiko – Fabric mengandalkan pustaka Paramiko untuk menangani koneksi SSH, yang menyediakan cara yang aman dan andal untuk menjalankan perintah dari jarak jauh.
  • Alur Kerja Berbasis Tugas – Fabric mendorong pendekatan berorientasi tugas untuk eksekusi perintah jarak jauh. Anda menentukan tugas, yang pada dasarnya merupakan fungsi Python, dan Fabric menangani pelaksanaannya di server jarak jauh.
  • Kasus Penggunaan – Fabric adalah alat serbaguna yang cocok untuk berbagai kasus penggunaan, termasuk penerapan aplikasi, mengelola konfigurasi server, dan menjalankan tugas pemeliharaan sistem.

Dalam panduan ini, kami akan membahas langkah-langkah untuk memperkenalkan dan memulai penggunaan Fabric guna meningkatkan administrasi server untuk grup server.

Cara Memasang Alat Otomasi Fabric di Linux

Karakteristik penting dari fabric adalah mesin jarak jauh yang perlu Anda kelola hanya perlu menginstal server OpenSSH standar.

Anda hanya perlu menginstal persyaratan tertentu di server tempat Anda mengelola server jarak jauh sebelum Anda dapat memulai.

Persyaratan:

  • Python 2.5+ dengan header pengembangan
  • Python-setuptools dan pip (opsional, tetapi lebih disukai) gcc

Fabric mudah diinstal menggunakan manajer paket pip, namun Anda mungkin juga memilih untuk memilih manajer paket default Anda yum, dnf, atau apt/apt-get untuk menginstal paket fabric , biasanya disebut fabric atau python-fabric.

Instal Fabric di Sistem RHEL

Pada distribusi berbasis RHEL seperti CentOS Stream, Rocky Linux, dan AlmaLinux, Anda harus menginstal dan mengaktifkan repositori EPEL di sistem untuk instal paket kain.

sudo dnf install epel-release
sudo dnf install fabric

Instal Fabric di Sistem Debian

Pada distribusi berbasis Debian seperti Ubuntu dan Linux Mint pengguna cukup melakukan apt untuk menginstal paket fabric sebagai ditampilkan:

sudo apt install fabric

Instal Fabric Menggunakan PiP

Jika fabric tidak tersedia dari repositori sistem Anda, Anda dapat menggunakan pip untuk menginstalnya seperti yang ditunjukkan.

sudo yum install python3-pip       [On RedHat based systems] 
sudo dnf install python3-pip       [On Fedora 22+ versions]
sudo apt install python3-pip       [On Debian based systems]

Setelah pip berhasil diinstal, Anda dapat menggunakan pip untuk mengambil fabric versi terbaru seperti yang ditunjukkan:

pip3 install fabric

Cara Menggunakan Fabric untuk Mengotomatiskan Tugas Administrasi Linux

Mari kita mulai cara menggunakan Fabric. Sebagai bagian dari proses instalasi, skrip Python bernama 'fab' telah ditambahkan ke direktori di PATH sistem Anda. Skrip 'fab' menangani semua tugas saat menggunakan Fabric.

Jalankan Perintah Linux Secara Lokal

Sesuai aturan, Anda harus memulai dengan membuat file Python bernama fabfile.py menggunakan editor teks favorit Anda. Ingat Anda dapat memberi nama berbeda pada file ini sesuai keinginan, tetapi Anda perlu menentukan jalur file sebagai berikut:

fab --fabfile /path/to/the/file.py

Fabric menggunakan 'fabfile.py' untuk menjalankan tugas, 'fabfile' harus ditempatkan di direktori yang sama tempat Anda menjalankan Alat kain.

Contoh 1: Mari kita buat Hello World dasar terlebih dahulu.

vi fabfile.py

Tambahkan baris kode ini ke file.

def hello():
       print('Hello world, Tecmint community')

Simpan file dan jalankan perintah di bawah ini.

fab hello

Sekarang mari kita lihat contoh fabfile.py untuk menjalankan perintah uptime di mesin lokal.

Contoh 2: Buka file fabfile.py baru sebagai berikut:

vi fabfile.py

Dan pastekan baris kode berikut pada file tersebut.

#!  /usr/bin/env python
from fabric.api import local
def uptime():
  local('uptime')

Kemudian simpan file dan jalankan perintah berikut:

fab uptime

Jalankan Perintah Linux dari Jarak Jauh Melalui SSH

Fabric API menggunakan kamus konfigurasi yang setara dengan array asosiatif Python yang dikenal sebagai env, yang menyimpan nilai-nilai yang mengontrol apa yang dilakukan Fabric.

env.hosts adalah daftar server tempat Anda ingin menjalankan tugas Fabric. Jika jaringan Anda 192.168.0.0 dan ingin mengelola host 192.168.0.2 dan 192.168.0.6 dengan fabfile Anda , Anda dapat mengonfigurasi env.hosts sebagai berikut:

#!/usr/bin/env python
from  fabric.api import env
env.hosts = [ '192.168.0.2', '192.168.0.6' ]

Baris kode di atas hanya menentukan host tempat Anda akan menjalankan tugas Fabric tetapi tidak melakukan apa pun lagi. Oleh karena itu Anda dapat menentukan beberapa tugas, Fabric menyediakan serangkaian fungsi yang dapat Anda gunakan untuk berinteraksi dengan mesin jarak jauh Anda.

Meskipun ada banyak fungsi, namun yang paling umum digunakan adalah:

  • run – yang menjalankan perintah shell pada mesin jarak jauh.
  • local – yang menjalankan perintah pada mesin lokal.
  • sudo – yang menjalankan perintah shell pada mesin jarak jauh, dengan hak akses root.
  • Dapatkan – yang mengunduh satu atau lebih file dari mesin jarak jauh.
  • Put – yang mengunggah satu atau lebih file ke mesin jarak jauh.

Contoh 3: Untuk menggemakan pesan di beberapa mesin, buatlah fabfile.py seperti di bawah ini.

#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def echo():
      run("echo -n 'Hello, you are tuned to Tecmint ' ")

Untuk menjalankan tugas, jalankan perintah berikut:

fab echo

Contoh 4: Anda dapat meningkatkan fabfile.py yang Anda buat sebelumnya untuk menjalankan perintah uptime pada mesin lokal sehingga menjalankan perintah uptime dan juga memeriksa penggunaan disk menggunakan perintah df pada beberapa mesin sebagai berikut:

#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def uptime():
      run('uptime')
def disk_space():
     run('df -h')

Simpan file dan jalankan perintah berikut:

fab uptime
fab disk_space

Instal LAMP Stack secara otomatis di Server Linux Jarak Jauh

Contoh 4: Mari kita lihat contoh penerapan server LAMP (Linux, Apache, MySQL/MariaDB, dan PHP) di server Linux jarak jauh.

Kami akan menulis fungsi yang memungkinkan LAMP diinstal dari jarak jauh menggunakan hak akses root.

Untuk RHEL/CentOS dan Fedora
#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def deploy_lamp():
  run ("yum install -y httpd mariadb-server php php-mysql")
Untuk Debian/Ubuntu dan Linux Mint
#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def deploy_lamp():
  sudo("apt-get install -q apache2 mysql-server libapache2-mod-php php-mysql")

Simpan file dan jalankan perintah berikut:

fab deploy_lamp

Catatan: Karena keluarannya besar, kami tidak dapat membuat screencast (gif animasi) untuk contoh ini.

Sekarang Anda dapat mengotomatiskan tugas manajemen server Linux menggunakan Fabric dan fitur serta contohnya yang diberikan di atas…

Pilihan Berguna Kain

  • Anda dapat menjalankan fab --help untuk melihat informasi berguna dan daftar panjang opsi baris perintah yang tersedia.
  • Opsi penting --fabfile=PATH yang membantu Anda menentukan file modul Python lain untuk diimpor selain fabfile.py.
  • Untuk menentukan nama pengguna yang akan digunakan saat menghubungkan ke host jarak jauh, gunakan opsi --user=USER.
  • Untuk menggunakan sandi untuk autentikasi dan/atau sudo, gunakan opsi --password=PASSWORD.
  • Untuk mencetak info detail tentang perintah NAMA, gunakan opsi --display=NAME.
  • Untuk melihat format gunakan opsi --list, pilihan: short, normal, nested, gunakan opsi --list-format=FORMAT.
  • Untuk mencetak daftar kemungkinan perintah dan keluar, sertakan opsi --list.
  • Anda dapat menentukan lokasi file konfigurasi yang akan digunakan dengan menggunakan opsi --config=PATH.
  • Untuk menampilkan keluaran kesalahan berwarna, gunakan --colorize-errors.
  • Untuk melihat nomor versi program dan keluar, gunakan opsi --version.
Ringkasan

Fabric adalah pustaka Python canggih yang menyederhanakan eksekusi perintah jarak jauh melalui SSH, sehingga menyediakan pendekatan Pythonic yang mudah digunakan. Kemampuannya untuk menyederhanakan tugas-tugas kompleks dan mengotomatiskan manajemen sistem menjadikannya alat yang berharga bagi administrator sistem, pengembang, dan profesional DevOps.

Baik Anda mengelola satu server atau mengatur penerapan skala besar, Fabric dapat membantu Anda menyelesaikan pekerjaan secara efisien dan efektif.