Audinys – nuotoliniu būdu vykdykite „Shell“ komandas per SSH sistemoje „Linux“.


Nuolat besikeičiančiame programinės įrangos kūrimo pasaulyje efektyvus nuotolinio serverio valdymas yra labai svarbus. Nesvarbu, ar esate sistemos administratorius, programinės įrangos inžinierius ar programinės įrangos kūrėjas, gebėjimas paleisti Linux komandas nuotoliniuose serveriuose yra įprasta užduotis.

Štai čia Fabric, aukšto lygio Python biblioteka, sukurta nuotoliniu būdu per SSH vykdyti Linux komandas, tampa nepakeičiamu įrankiu visiems, kuriems reikia valdyti nuotolines sistemas. išnaudodami Python galią.

Kas yra Audinys?

Audinys yra universali Python biblioteka, kuri supaprastina apvalkalo komandų vykdymą nuotoliniuose serveriuose naudojant SSH ryšius. Iš pradžių jį sukūrė Jeffas Forcieris, o vėliau tapo atvirojo kodo projektu.

Tai aukšto lygio Pythonic sąsaja darbui su nuotolinėmis sistemomis, leidžianti be vargo automatizuoti užduotis, įdiegti kodą ir valdyti konfigūracijas keliuose serveriuose.

Kodėl naudoti audinį?

Yra keletas įtikinamų priežasčių, kodėl reikia pasirinkti Audinį nuotolinio komandų vykdymo poreikiams:

  • Pythonic Approach – audinys atitinka Python filosofiją, todėl kūrėjai ir sistemos administratoriai gali lengvai rašyti scenarijus jiems jau pažįstama kalba.
  • SSH ir „Paramiko“ – „Fabric“ remiasi Paramiko biblioteka, kad tvarkytų SSH ryšius, o tai yra saugus ir patikimas būdas nuotoliniu būdu vykdyti komandas.
  • Užduotimis pagrįsta darbo eiga – „Fabric“ skatina į užduotis orientuotą požiūrį į nuotolinio komandų vykdymą. Jūs apibrėžiate užduotis, kurios iš esmės yra Python funkcijos, o Fabric rūpinasi jų vykdymu nuotoliniuose serveriuose.
  • Naudojimo atvejai – „Fabric“ yra universalus įrankis, tinkantis įvairiems naudojimo atvejams, įskaitant programų diegimą, serverio konfigūracijų tvarkymą ir sistemos priežiūros užduočių vykdymą.

Šiame vadove apžvelgsime žingsnius, kaip pristatyti ir pradėti naudoti „Fabric“, kad pagerintumėte serverių grupių serverių administravimą.

Kaip įdiegti audinio automatizavimo įrankį sistemoje „Linux“.

Svarbi audinio savybė yra ta, kad nuotoliniuose įrenginiuose, kuriuos turite administruoti, tereikia įdiegti standartinį OpenSSH serverį.

Kad galėtumėte pradėti, serveryje, iš kurio administruojate nuotolinius serverius, reikia įdiegti tik tam tikrus reikalavimus.

Reikalavimai:

  • Python 2.5+ su kūrimo antraštėmis
  • Python-setuptools ir pip (neprivaloma, bet pageidautina) gcc

Audinys lengvai įdiegiamas naudojant pip paketų tvarkyklę, bet taip pat galite pasirinkti numatytąją paketų tvarkyklę yum, dnf arba apt/apt-get, kad įdiegtumėte audinio paketą. , paprastai vadinamas audiniu arba python-audiniu.

Įdiekite audinį į RHEL Systems

RHEL pagrįstuose platinimuose, pvz., CentOS Stream, Rocky Linux ir AlmaLinux, sistemoje turi būti įdiegta ir įjungta EPEL saugykla, kad įdiekite audinio paketą.

sudo dnf install epel-release
sudo dnf install fabric

Įdiekite „Fabric“ „Debian Systems“.

Debian pagrindu sukurtuose platinimuose, tokiuose kaip Ubuntu ir Linux Mint, vartotojai gali tiesiog atlikti apt, kad įdiegtų audinį paketą kaip parodyta:

sudo apt install fabric

Įdiekite audinį naudodami PiP

Jei audinio nėra jūsų sistemos saugyklose, galite naudoti pip, kad įdiegtumėte, kaip parodyta.

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]

Sėkmingai įdiegę pip, galite naudoti pip, kad gautumėte naujausią audinio versiją, kaip parodyta:

pip3 install fabric

Kaip naudoti „Fabric“ norint automatizuoti „Linux“ administravimo užduotis

Pradėkime, kaip naudoti Audinį. Diegimo proceso metu Python scenarijus, vadinamas 'fab', buvo įtrauktas į katalogą jūsų sistemos PATH. Scenarijus 'fab' apdoroja visas užduotis, kai naudojamas Audinys.

Paleiskite Linux komandas lokaliai

Pagal susitarimą pirmiausia turite sukurti Python failą pavadinimu fabfile.py naudodami mėgstamą teksto rengyklę. Atminkite, kad šiam failui galite suteikti kitokį pavadinimą, bet turėsite nurodyti failo kelią taip:

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

Fabric naudoja 'fabfile.py' užduotims vykdyti, o 'fabfile' turi būti tame pačiame kataloge, kuriame vykdote Audinysįrankis.

1 pavyzdys: pirmiausia sukurkime pagrindinį Hello World.

vi fabfile.py

Pridėkite šias kodo eilutes prie failo.

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

Išsaugokite failą ir paleiskite žemiau esančią komandą.

fab hello

Dabar pažiūrėkime į fabfile.py pavyzdį, kad vietiniame kompiuteryje būtų vykdoma komanda uptime.

2 pavyzdys: atidarykite naują fabfile.py failą taip:

vi fabfile.py

Ir įklijuokite šias kodo eilutes į failą.

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

Tada išsaugokite failą ir paleiskite šią komandą:

fab uptime

Nuotoliniu būdu paleiskite „Linux“ komandas per SSH

Fabric API naudoja konfigūracijos žodyną, kuris yra Python atitikmuo asociatyviniam masyvui, žinomam kaip env, kuriame saugomos reikšmės, valdančios, ką daro Fabric.

env.hosts yra serverių, kuriuose norite vykdyti Fabric užduotis, sąrašas. Jei jūsų tinklas yra 192.168.0.0 ir norite valdyti pagrindinius įrenginius 192.168.0.2 ir 192.168.0.6 su savo fabfile , galite sukonfigūruoti env.hosts taip:

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

Aukščiau pateikta kodo eilutė nurodo tik pagrindinius kompiuterius, kuriuose vykdysite „Fabric“ užduotis, bet nieko daugiau nedarysite. Todėl galite apibrėžti kai kurias užduotis, „Fabric“ pateikia funkcijų rinkinį, kurį galite naudoti bendraudami su nuotoliniais įrenginiais.

Nors yra daug funkcijų, dažniausiai naudojamos šios:

  • paleisti – paleidžiama apvalkalo komanda nuotoliniame kompiuteryje.
  • vietinis – paleidžiama komanda vietiniame kompiuteryje.
  • sudo – kuri paleidžia apvalkalo komandą nuotoliniame kompiuteryje su root teisėmis.
  • Gauti – atsisiunčiamas vienas ar daugiau failų iš nuotolinio įrenginio.
  • Įdėti – įkelia vieną ar daugiau failų į nuotolinį įrenginį.

3 pavyzdys: norėdami atkartoti pranešimą keliuose įrenginiuose, sukurkite fabfile.py, pvz., toliau pateiktą.

#!/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 ' ")

Norėdami atlikti užduotis, paleiskite šią komandą:

fab echo

4 pavyzdys: galite patobulinti fabfile.py, kurią sukūrėte anksčiau, kad vietiniame kompiuteryje būtų vykdoma veiksnumo komanda, kad ji paleidžia komandą uptime ir taip pat tikrina disko naudojimą naudodama komandą df keliuose įrenginiuose taip:

#!/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')

Išsaugokite failą ir paleiskite šią komandą:

fab uptime
fab disk_space

Automatiškai įdiekite LAMP Stack nuotoliniame „Linux“ serveryje

4 pavyzdys: pažvelkime į LAMP (Linux, Apache, MySQL/MariaDB ir PHP) serverio diegimo pavyzdį nuotolinis Linux serveris.

Parašysime funkciją, kuri leis LAMP diegti nuotoliniu būdu naudojant root teises.

RHEL/CentOS ir 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")
Skirta Debian/Ubuntu ir 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")

Išsaugokite failą ir paleiskite šią komandą:

fab deploy_lamp

Pastaba: dėl didelės išvesties šio pavyzdžio ekrano transliacijos (animuoto GIF) sukurti negalime.

Dabar galite automatizuoti „Linux“ serverio valdymo užduotis naudodami „Fabric“ ir jo funkcijas bei aukščiau pateiktus pavyzdžius…

Audinio naudingos parinktys

  • Galite paleisti fab --help, kad peržiūrėtumėte naudingą informaciją ir ilgą galimų komandų eilutės parinkčių sąrašą.
  • Svarbi parinktis --fabfile=PATH, padedanti nurodyti kitą importuojamą Python modulio failą, išskyrus fabfile.py.
  • Norėdami nurodyti vartotojo vardą, kurį naudosite jungiantis prie nuotolinių kompiuterių, naudokite parinktį --user=USER.
  • Jei norite autentifikuoti ir (arba) sudo naudoti slaptažodį, naudokite parinktį --password=PASSWORD.
  • Norėdami išspausdinti išsamią informaciją apie komandą NAME, naudokite parinktį --display=NAME.
  • Norėdami peržiūrėti formatus, naudokite parinktį --list, pasirinkimus: trumpas, įprastas, įdėtas, naudokite parinktį --list-format=FORMAT.
  • Norėdami išspausdinti galimų komandų sąrašą ir išeiti, įtraukite parinktį --list.
  • Galite nurodyti naudojamo konfigūracijos failo vietą naudodami --config=PATH parinktį.
  • Norėdami parodyti spalvotą klaidos išvestį, naudokite --colorize-errors.
  • Norėdami peržiūrėti programos versijos numerį ir išeiti, naudokite parinktį --version.
Santrauka

„Fabric“ yra galinga „Python“ biblioteka, supaprastinanti nuotolinio komandų vykdymą per SSH, suteikdama vartotojui patogų Python metodą. Dėl savo gebėjimo supaprastinti sudėtingas užduotis ir automatizuoti sistemos valdymą, jis yra vertingas įrankis sistemų administratoriams, kūrėjams ir „DevOps“ profesionalams.

Nesvarbu, ar valdote vieną serverį, ar organizuojate didelio masto diegimą, „Fabric“ gali padėti atlikti darbą efektyviai ir efektyviai.