Tkanina - avtomatizirajte svoja skrbniška opravila za Linux in razmestitve aplikacij prek SSH


Ko gre za upravljanje oddaljenih računalnikov in uvajanje aplikacij, obstaja več orodij ukazne vrstice, čeprav imajo številni skupni problem pomanjkanja podrobne dokumentacije.

V tem priročniku bomo opisali korake za predstavitev in začetek uporabe tkanine za izboljšanje upravljanja skupin strežnikov.

Fabric je knjižnica python in močno orodje ukazne vrstice za izvajanje skrbniških nalog sistema, kot je izvajanje ukazov SSH na več računalnikih in uvajanje aplikacij.

Preberite tudi: Uporabite skript za lupine za avtomatizacijo nalog vzdrževanja sistema Linux

Poznavanje Pythona je lahko koristno pri uporabi Fabric, vendar zagotovo ni potrebno.

Razlogi, zakaj bi morali izbrati tkanino pred drugimi možnostmi:

  1. Preprostost
  2. To je dobro dokumentirano
  3. Če ste že fant pythona, se vam ni treba naučiti drugega jezika.
  4. Enostavna namestitev in uporaba.
  5. Hitro deluje.
  6. Podpira vzporedno oddaljeno izvajanje.

Kako namestiti orodje za avtomatizacijo tkanin v Linux

Pomembna značilnost tkanine je, da morajo biti na oddaljenih računalnikih, ki jih morate upravljati, nameščen samo standardni strežnik OpenSSH. Preden začnete, potrebujete le nekatere zahteve, nameščene na strežniku, s katerega upravljate oddaljene strežnike.

  1. Python 2.5+ z razvojnimi glavami
  2. Python-setuptools in pip (neobvezno, vendar prednostno) gcc

Fabric je enostavno namestiti s pomočjo pipa (zelo priporočljivo), vendar lahko tudi raje izberete privzeti upravitelj paketov apt-get, da namestite paket tkanin, ki se običajno imenuje fabric ali python-fabric.

Za distribucije, ki temeljijo na RHEL/CentOS, morate imeti nameščen in v sistemu omogočen repozitorij EPEL, da namestite paket tkanin.

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

Uporabniki Debiana in njegovih izpeljank, kot sta Ubuntu in Mint, lahko preprosto apt-get namestijo paket tkanine, kot je prikazano:

# apt-get install fabric

Če želite namestiti razvojno različico tkanine, lahko uporabite pip, da zgrabite najnovejšo glavno vejo.

# 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]

Ko je pip uspešno nameščen, lahko s pipom zgrabite najnovejšo različico tkanine, kot je prikazano:

# pip install fabric

Kako s tkanino avtomatizirati skrbniške naloge Linuxa

Začnimo torej, kako lahko uporabljate Fabric. Med namestitvijo je bil v imenik na vaši poti dodan skript Python, imenovan fab . Fab skript opravi vse delo pri uporabi tkanine.

Po dogovoru morate najprej začeti z ustvarjanjem datoteke Python, imenovane fabfile.py , s svojim najljubšim urejevalnikom. Ne pozabite, da lahko tej datoteki daste drugačno ime, kot želite, vendar boste morali pot datoteke določiti na naslednji način:

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

Fabric za izvajanje nalog uporablja fabfile.py . Datoteka fab naj bo v istem imeniku, v katerem zaženete orodje Fabric.

Primer 1: Ustvarimo najprej osnovno Hello World .

# vi fabfile.py

V datoteko dodajte te vrstice kode.

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

Shranite datoteko in zaženite spodnji ukaz.

# fab hello

Oglejmo si zdaj primer fabfile.py za izvajanje ukaza uptime na lokalnem računalniku.

2. primer: Odprite novo datoteko fabfile.py, kot sledi:

# vi fabfile.py

V datoteko prilepite naslednje vrstice kode.

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

Nato shranite datoteko in zaženite naslednji ukaz:

# fab uptime

API Fabric uporablja konfiguracijski slovar, ki je Pythonov ekvivalent asociativne matrike, znane kot env , in hrani vrednosti, ki nadzorujejo, kaj počne Fabric.

env.hosts je seznam strežnikov, na katerih želite zagnati naloge Fabric. Če je vaše omrežje 192.168.0.0 in želite s svojo fab datoteko upravljati gostitelja 192.168.0.2 in 192.168.0.6, lahko env.hosts konfigurirate na naslednji način:

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

Zgornja vrstica kode določa samo gostitelje, na katerih boste izvajali naloge Fabric, vendar ne naredite nič več. Zato lahko določite nekatere naloge, Fabric ponuja nabor funkcij, s katerimi lahko komunicirate z oddaljenimi stroji.

Čeprav obstaja veliko funkcij, so najpogosteje uporabljene:

  1. zaženi - ki zažene ukaz lupine na oddaljenem računalniku.
  2. lokalno - ki izvaja ukaz na lokalnem računalniku.
  3. sudo - ki na oddaljenem računalniku zažene ukaz lupine s korenskimi privilegiji.
  4. Get - ki prenese eno ali več datotek z oddaljene naprave.
  5. Put - ki naloži eno ali več datotek na oddaljeni računalnik.

Primer 3: Za odmev sporočila na več računalnikih ustvarite fabfile.py , kot je spodaj.

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

Če želite izvajati naloge, zaženite naslednji ukaz:

# fab echo

Primer 4: Izboljšajte fabfile.py , ki ste ga ustvarili prej, da izvedete ukaz uptime na lokalnem računalniku, tako da zažene ukaz uptime in tudi preveri uporabo diska z ukazom df na več stroji, kot sledi:

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

Shranite datoteko in zaženite naslednji ukaz:

# fab uptime
# fab disk_space

Primer 4: Oglejmo si primer namestitve strežnika LAMP (Linux, Apache, MySQL/MariaDB in PHP) na oddaljenem strežniku Linux.

Napisali bomo funkcijo, ki bo omogočila oddaljeno namestitev LAMP z uporabo korenskih pravic.

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

Shranite datoteko in zaženite naslednji ukaz:

# fab deploy_lamp

Opomba: Zaradi velikega izhoda za ta primer ne moremo ustvariti zaslona (animiranega gifa).

Zdaj lahko avtomatizirate naloge upravljanja strežnika Linux z uporabo Fabric in njegovih funkcij ter zgoraj danih primerov ...

  1. Zaženite fab –help, če si želite ogledati informacije o pomoči in dolg seznam razpoložljivih možnosti ukazne vrstice.
  2. Pomembna možnost je –fabfile = PATH, ki vam pomaga določiti drugo datoteko modula python za uvoz drugih, nato pa fabfile.py.
  3. Če želite določiti uporabniško ime pri povezovanju z oddaljenimi gostitelji, uporabite možnost –user = USER.
  4. Če želite za preverjanje pristnosti in/ali sudo uporabiti geslo, uporabite možnost –password = PASSWORD.
  5. Če želite natisniti podrobne informacije o ukazu NAME, uporabite –display = NAME.
  6. Za ogled formatov uporabite možnost –list, izbire: kratka, običajna, ugnezdena, uporabite možnost –list-format = FORMAT.
  7. Če želite natisniti seznam možnih ukazov in izstopiti, vključite možnost –list.
  8. Lokacijo nastavitvene datoteke, ki jo želite uporabiti, lahko določite z možnostjo –config = PATH.
  9. Za prikaz barvnega izpisa napak uporabite –colorize-napake.
  10. Če si želite ogledati številko različice programa in izstopiti, uporabite možnost –verzija.

Povzetek

Tkanina je močno orodje, dobro dokumentirana in omogoča enostavno uporabo za začetnike. Za boljše razumevanje si lahko preberete celotno dokumentacijo. Če imate kakršne koli informacije za dodajanje napak ali kakršne koli napake, na katere naletite med namestitvijo in uporabo, lahko pustite komentar in našli bomo načine, kako jih popraviti.

Referenca: Dokumentacija o tkanini