Tkanina - Automatizirajte svoje administrativne zadatke Linuxa i implementacije aplikacija putem SSH-a


Što se tiče upravljanja udaljenim strojevima i postavljanja aplikacija, postoji nekoliko alata naredbenog retka, iako je mnogima zajednički problem nedostatak detaljne dokumentacije.

U ovom ćemo vodiču pokriti korake za uvođenje i početak rada s načinom korištenja tkanine za poboljšanje administriranja grupa poslužitelja.

Fabric je python knjižnica i moćan alat naredbenog retka za izvršavanje zadataka administracije sustava, poput izvršavanja SSH naredbi na više računala i primjene aplikacija.

Pročitajte također: Koristite Shell skriptiranje za automatizaciju zadataka održavanja Linux sustava

Poznavanje Pythona u praksi može biti korisno kada koristite Fabric, ali sigurno neće biti potrebno.

Razlozi zbog kojih biste trebali odabrati tkaninu u odnosu na druge alternative:

  1. Jednostavnost
  2. Dobro je dokumentirano
  3. Ne morate učiti drugi jezik ako ste već piton.
  4. Jednostavno instaliranje i korištenje.
  5. U operacijama je brz.
  6. Podržava paralelno daljinsko izvršavanje.

Kako instalirati alat za automatizaciju tkanine u Linux

Važna karakteristika tkanine je da udaljeni strojevi kojima trebate upravljati trebaju imati instaliran standardni OpenSSH poslužitelj. Potrebni su vam samo određeni zahtjevi instalirani na poslužitelju s kojeg upravljate udaljenim poslužiteljima prije nego što započnete.

  1. Python 2.5+ s razvojnim zaglavljima
  2. Python-setuptools i pip (neobavezno, ali poželjno) gcc

Tkanina se lako instalira pomoću pipa (toplo se preporučuje), ali možda ćete radije odabrati i zadani upravitelj paketa apt-get za instalaciju paketa tkanina, koji se obično naziva tkanina ili python-fabric.

Za distribucije temeljene na RHEL/CentOS, morate instalirati spremište EPEL i omogućiti ga na sustavu da biste instalirali paket tkanine.

# yum install fabric   [On RedHat based systems]  
# dnf install fabric   [On Fedora 22+ versions]

Za Debian i njegove derivate kao što su Ubuntu i Mint korisnici mogu jednostavno apt-get instalirati paket tkanina kao što je prikazano:

# apt-get install fabric

Ako želite instalirati razvojnu verziju tkanine, možete upotrijebiti pip da zgrabite najnoviju glavnu granu.

# yum install python-pip       [On RedHat based systems] 
# dnf install python-pip       [On Fedora 22+ versions]
# apt-get install python-pip   [On Debian based systems]

Nakon što je pip uspješno instaliran, možete koristiti pip da zgrabite najnoviju verziju tkanine kao što je prikazano:

# pip install fabric

Kako koristiti tkaninu za automatizaciju Linux administrativnih zadataka

Dakle, krenimo s tim kako možete koristiti tkaninu. Tijekom postupka instalacije, direktorij na vašoj putanji dodan je Python skripta nazvana fab . Fab skripta obavlja sav posao kada se koristi tkanina.

Prema dogovoru, morate započeti stvaranjem Python datoteke pod nazivom fabfile.py pomoću vašeg omiljenog uređivača. Zapamtite da ovoj datoteci možete dati drugo ime po želji, ali morat ćete odrediti put do datoteke na sljedeći način:

# fabric --fabfile /path/to/the/file.py

Fabric koristi fabfile.py za izvršavanje zadataka. Fab datoteka bi se trebala nalaziti u istom direktoriju u kojem pokrećete alat Fabric.

Primjer 1: Stvorimo prvo osnovni Hello World .

# vi fabfile.py

Dodajte ove retke koda u datoteku.

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

Spremite datoteku i pokrenite naredbu u nastavku.

# fab hello

Pogledajmo sada primjer fabfile.py za izvršavanje naredbe za neprekidni rad na lokalnom stroju.

Primjer 2: Otvorite novu datoteku fabfile.py na sljedeći način:

# vi fabfile.py

I zalijepite sljedeće datoteke koda u datoteku.

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

Zatim spremite datoteku i pokrenite sljedeću naredbu:

# fab uptime

API Fabric koristi konfiguracijski rječnik koji je Pythonov ekvivalent asocijativnom nizu poznatom kao env , koji pohranjuje vrijednosti koje kontroliraju što Fabric radi.

env.hosts je popis poslužitelja na kojima želite pokretati Fabric zadatke. Ako je vaša mreža 192.168.0.0 i želite upravljati hostima 192.168.0.2 i 192.168.0.6 sa fab datotekom, možete konfigurirati env.hosts na sljedeći način:

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

Gornji redak koda samo određuje hostove na kojima ćete izvoditi zadatke Fabric, ali ne radite više ništa. Stoga možete definirati neke zadatke, Fabric nudi skup funkcija koje možete koristiti za interakciju s vašim udaljenim strojevima.

Iako postoji mnogo funkcija, najčešće se koriste:

  1. trčanje - koja pokreće naredbu ljuske na udaljenom stroju.
  2. lokalni - koji pokreće naredbu na lokalnom stroju.
  3. sudo - koji izvodi naredbu ljuske na udaljenom stroju, s root privilegijama.
  4. Nabavi - koji preuzima jednu ili više datoteka s udaljenog računala.
  5. Put - koji prenosi jednu ili više datoteka na udaljeni stroj.

Primjer 3: Za odjek poruke na više računala stvorite fabfile.py kao što je onaj u nastavku.

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

Da biste izvršili zadatke, pokrenite sljedeću naredbu:

# fab echo

Primjer 4: Možete poboljšati fabfile.py koji ste ranije kreirali da izvrši naredbu neprekidnog rada na lokalnom stroju, tako da izvršava naredbu neprekidnog rada i također provjerava upotrebu diska pomoću naredbe df na višestrukim strojevi kako slijedi:

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

Spremite datoteku i pokrenite sljedeću naredbu:

# fab uptime
# fab disk_space

Primjer 4: Pogledajmo primjer za postavljanje LAMP (Linux, Apache, MySQL/MariaDB i PHP) poslužitelja na udaljeni Linux poslužitelj.

Napisat ćemo funkciju koja će omogućiti daljinsko instaliranje LAMP-a koristeći root privilegije.

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

Spremite datoteku i pokrenite sljedeću naredbu:

# fab deploy_lamp

Napomena: Zbog velikog izlaza nije moguće stvoriti screencast (animirani gif) za ovaj primjer.

Sada možete automatizirati zadatke upravljanja Linux poslužiteljem koristeći Fabric i njegove gore navedene značajke i primjere ...

  1. Možete pokrenuti fab –help da biste pregledali informacije o pomoći i dugački popis dostupnih opcija naredbenog retka.
  2. Važna je opcija –fabfile = PATH koja vam pomaže da odredite drugu datoteku python modula za uvoz drugih, a ne fabfile.py.
  3. Da biste odredili korisničko ime za povezivanje s udaljenim hostovima, upotrijebite opciju –user = USER.
  4. Da biste koristili lozinku za provjeru autentičnosti i/ili sudo, koristite opciju –password = PASSWORD.
  5. Da biste ispisali detaljne informacije o naredbi NAME, upotrijebite –display = NAME opciju.
  6. Za prikaz formata koristite opciju –list, izbore: kratki, normalni, ugniježđeni, upotrijebite opciju –list-format = FORMAT.
  7. Da biste ispisali popis mogućih naredbi i izašli, uključite opciju –list.
  8. Možete odrediti mjesto konfiguracijske datoteke koju ćete koristiti pomoću opcije –config = PATH.
  9. Za prikaz izlaznih pogrešaka u boji upotrijebite –colorize-error.
  10. Da biste pogledali broj verzije programa i izašli, koristite opciju –verzija.

Sažetak

Tkanina je moćan alat, dobro je dokumentiran i pruža jednostavnu uporabu za početnike. Možete pročitati cijelu dokumentaciju da biste je bolje razumjeli. Ako imate bilo kakve informacije za dodavanje ili slučaj grešaka na koje naiđete tijekom instalacije i upotrebe, možete ostaviti komentar i pronaći ćemo načine da ih ispravimo.

Referenca: Dokumentacija o tkanini