Fabric - Automatiser dine Linux-administrationsopgaver og applikationsimplementeringer via SSH


Når det kommer til styring af eksterne maskiner og implementering af applikationer, findes der flere kommandolinjeværktøjer, selvom mange har et fælles problem med mangel på detaljeret dokumentation.

I denne vejledning skal vi dække trinene til introduktion og i gang med, hvordan man bruger stof til at forbedre administrationen af servergrupper.

Fabric er et python-bibliotek og et kraftfuldt kommandolinjeværktøj til udførelse af systemadministrationsopgaver såsom udførelse af SSH-kommandoer på flere maskiner og applikationsinstallation.

Læs også: Brug Shell Scripting til at automatisere Linux-systemvedligeholdelsesopgaver

At have en fungerende viden om Python kan være nyttig, når du bruger Fabric, men det er bestemt ikke nødvendigt.

Årsager til, at du skal vælge stof frem for andre alternativer:

  1. Enkelhed
  2. Det er veldokumenteret
  3. Du behøver ikke at lære et andet sprog, hvis du allerede er en python-fyr.
  4. Let at installere og bruge.
  5. Det er hurtigt i sin drift.
  6. Det understøtter parallel fjernudførelse.

Sådan installeres Fabric Automation Tool i Linux

Et vigtigt kendetegn ved stoffet er, at de eksterne maskiner, som du skal administrere, kun behøver at have installeret OpenSSH-serveren. Du har kun brug for visse krav installeret på den server, hvorfra du administrerer fjernserverne, før du kan komme i gang.

  1. Python 2.5+ med udviklingsoverskrifterne
  2. Python-setupværktøjer og pip (valgfri, men foretrukket) gcc

Stof installeres let ved hjælp af pip (anbefales), men du foretrækker måske også at vælge din standardpakkehåndterer apt-get til at installere stofpakke, typisk kaldet stof eller python-stof.

For RHEL/CentOS-baserede distributioner skal du have EPEL-arkiv installeret og aktiveret på systemet for at installere stofpakken.

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

For Debian og dets derivater som Ubuntu og Mint kan brugere simpelthen apt-get til at installere stofpakken som vist:

# apt-get install fabric

Hvis du vil installere udviklingsversion af stof, kan du bruge pip til at få fat i den seneste mastergren.

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

Når pip er installeret med succes, kan du bruge pip til at få fat i den nyeste version af stoffet som vist:

# pip install fabric

Sådan bruges Fabric til at automatisere Linux-administrationsopgaver

Så lad os komme i gang med, hvordan du kan bruge Fabric. Under installationsprocessen blev et Python-script kaldet fab føjet til en mappe på din sti. Det fantastiske script udfører alt arbejdet, når du bruger stof.

Efter konvention skal du starte med at oprette en Python-fil kaldet fabfile.py ved hjælp af din foretrukne editor. Husk at du kan give denne fil et andet navn, som du ønsker, men du skal angive filstien som følger:

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

Fabric bruger fabfile.py til at udføre opgaver. Fabriksfilen skal være i samme bibliotek, hvor du kører stofværktøjet.

Eksempel 1: Lad os først oprette en grundlæggende Hello World .

# vi fabfile.py

Tilføj disse kodelinjer i filen.

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

Gem filen, og kør kommandoen nedenfor.

# fab hello

Lad os nu se på et eksempel på en fabfile.py for at udføre oppetidskommandoen på den lokale maskine.

Eksempel 2: Åbn en ny fabfile.py-fil som følger:

# vi fabfile.py

Og indsæt følgende kodelinjer i filen.

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

Gem derefter filen, og kør følgende kommando:

# fab uptime

Fabric API bruger en konfigurationsordbog, der svarer til Pythons ækvivalent med et associerende array kendt som env , der gemmer værdier, der styrer, hvad Fabric gør.

env.hosts er en liste over servere, som du vil køre Fabric-opgaver på. Hvis dit netværk er 192.168.0.0 og ønsker at administrere vært 192.168.0.2 og 192.168.0.6 med din fabfil, kan du konfigurere env.hosts som følger:

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

Ovenstående kodelinje angiver kun de værter, som du vil køre Fabric-opgaver på, men gør ikke mere. Derfor kan du definere nogle opgaver, Fabric giver et sæt funktioner, som du kan bruge til at interagere med dine eksterne maskiner.

Selvom der er mange funktioner, er de mest anvendte:

  1. run - som kører en shell-kommando på en ekstern maskine.
  2. local - som kører kommando på den lokale maskine.
  3. sudo - som kører en shell-kommando på en ekstern maskine med root-rettigheder.
  4. Hent - der downloader en eller flere filer fra en ekstern maskine.
  5. Put - som uploader en eller flere filer til en ekstern maskine.

Eksempel 3: For at ekko en besked på flere maskiner skal du oprette en fabfile.py som den nedenfor.

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

For at udføre opgaverne skal du køre følgende kommando:

# fab echo

Eksempel 4: Du kan forbedre fabfile.py , som du oprettede tidligere for at udføre oppetidskommandoen på den lokale maskine, så den kører oppetidskommandoen og også kontrollere diskbrug ved hjælp af df-kommandoen på flere maskiner som følger:

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

Gem filen, og kør følgende kommando:

# fab uptime
# fab disk_space

Eksempel 4: Lad os se på et eksempel til implementering af LAMP (Linux, Apache, MySQL/MariaDB og PHP) -server på en fjern Linux-server.

Vi skriver en funktion, der gør det muligt at installere LAMP eksternt ved hjælp af root-rettigheder.

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

Gem filen, og kør følgende kommando:

# fab deploy_lamp

Bemærk: På grund af den store output er det ikke muligt for os at oprette en screencast (animeret gif) til dette eksempel.

Nu kan du automatisere Linux-serveradministrationsopgaver ved hjælp af Fabric og dets funktioner og eksempler ovenfor ...

  1. Du kan køre fab –hjælp for at få vist oplysninger om hjælp og en lang liste over tilgængelige kommandolinjemuligheder.
  2. En vigtig mulighed er –fabfile = PATH, der hjælper dig med at specificere en anden python-modulfil til at importere anden end fabfile.py.
  3. For at angive et brugernavn, der skal bruges, når du opretter forbindelse til fjernværter, skal du bruge –bruger = BRUGER.
  4. For at bruge adgangskoden til godkendelse og/eller sudo skal du bruge –password = PASSWORD-indstillingen.
  5. Hvis du vil udskrive detaljeret information om kommandoen NAME, skal du bruge –display = NAME-indstillingen.
  6. For at se formater skal du bruge –listeindstilling, valg: kort, normal, indlejret, brug –list-format = FORMAT-indstilling.
  7. Hvis du vil udskrive en liste over mulige kommandoer og afslutte, skal du medtage –list-indstillingen.
  8. Du kan angive placeringen af konfigurationsfilen, der skal bruges, ved hjælp af indstillingen –config = PATH.
  9. For at få vist en farvet fejloutput skal du bruge –farvefejl.
  10. Hvis du vil se programmets versionsnummer og afslutte, skal du bruge indstillingen –version.

Resumé

Fabric er et kraftfuldt værktøj og er veldokumenteret og giver nem brug for nybegyndere. Du kan læse den fulde dokumentation for at få mere forståelse for det. Hvis du har oplysninger, der skal tilføjes eller opstå af eventuelle fejl, du støder på under installation og brug, kan du efterlade en kommentar, og vi finder måder at rette dem på.

Reference: stofdokumentation