Fabric er et Python-bibliotek og kommandolinjeverktøy for effektivisering av bruken av SSH for applikasjonsutplassering eller systemadministrasjonsoppgaver. Stoffet er veldig enkelt og kraftig, og kan bidra til å automatisere repetitive kommandolinjeoppgaver. Denne tilnærmingen kan spare tid ved å automatisere hele arbeidsflyten.
Denne opplæringen vil dekke hvordan du bruker Fabric for å integrere med SSH og automatisere oppgaver.
Stoffet er best installert via pip:
$ pip installert stoff
Nedenfor er en enkel funksjon som viser hvordan du bruker stoff.
def velkommen (): print ("Velkommen til å komme i gang med Fabric!")
Programmet over lagres så som fabfile.py
i din nåværende arbeidskatalog. Velkomstfunksjonen kan utføres med fab
verktøy som følger:
$ fab velkommen Velkommen til å komme i gang med Fabric
Fabric gir fab kommandoen som leser sin konfigurasjon fra en fil, fabfile.py
. Filen skal være i katalogen der kommandoen kjøres. En standard fabfile inneholder funksjonene som skal utføres på en ekstern vert eller en gruppe av eksterne verter.
Fabric implementerer funksjoner som kan brukes til å kommunisere med eksterne verter:
Denne operasjonen brukes til å kjøre en shell-kommando på en ekstern vert.
eksempler
løp ("ls / var / www /") kjøre ("ls / home / userx", shell = False) output = kjør ('ls / var / www / mysites'
Denne funksjonen brukes til å laste ned filer fra en ekstern vert. Eksempelet nedenfor viser hvordan du laster ned en sikkerhetskopi fra en ekstern server.
# Last ned en sikkerhetskopi ("/ backup / db.bak", "./db.bak")
Disse funksjonene laster opp filer til en ekstern vert. For eksempel:
med cd ('/ tmp'): put ('/ path / to / local / test.txt', 'files')
Som navnet antyder, gjenoppretter denne funksjonen en systemserver.
# Start datamaskinen på nytt ()
Denne funksjonen brukes til å utføre kommandoer på en ekstern vert med superbrukerrettigheter. I tillegg kan du også sende et nytt brukerargument som lar deg kjøre kommandoer som en annen bruker enn rot.
Eksempel
# Opprett en katalog sudo ("mkdir / var / www")
Denne funksjonen brukes til å kjøre en kommando på det lokale systemet. Et eksempel er:
# Trekk ut innholdet i et tjærearkiv lokalt ("tar xzvf /tmp/trunk/app.tar.gz") # Fjern en fil lokal ("rm /tmp/trunk/app.tar.gz")
Funksjonen ber brukeren med tekst og returnerer inngangen.
eksempler
# Enkeleste form: miljø = prompt ('Vennligst spesifiser målmiljø:') # angi vert env_host = prompt ('Vennligst spesifiser vert:')
Denne funksjonen brukes til å sjekke for gitt nøkler i et delt miljødikt. Hvis ikke funnet, avbrytes operasjonen.
En av måtene utviklere samhandler med eksterne servere i tillegg til FTP-klienter, er via SSH. SSH brukes til å koble til eksterne servere og gjøre alt fra grunnleggende konfigurasjon til å kjøre Git eller starte en webserver.
Med Fabric kan du utføre SSH-aktiviteter fra din lokale datamaskin.
Eksemplet nedenfor definerer funksjoner som viser hvordan du kontrollerer ledig diskplass og vertstype. Det definerer også hvilken vert som skal kjøre kommandoen:
# Import Fabrics API-modul fra fabric.api importkjøring env.hosts = '159.89.39.54' # Angi brukernavnet env.user = "root" def host_type (): run ('uname -s') def diskspace (): run ('df') def sjekke (): # sjekk verts type host_type () # Sjekk diskplass diskplass ()
For å kunne kjøre denne koden må du kjøre følgende kommando på terminalen:
fab sjekk
fab tjekke [159.89.39.54] Utføre oppgave 'sjekk' [159.89.39.54] run: uname -s [159.89.39.54] Logg inn passord for "root": [159.89.39.54] ut: Linux [159.89.39.54] ut: 159.89.39.54] run: df [159.89.39.54] ut: Filsystem 1K-blokker Brukt Tilgjengelig Bruk% Montert på [159.89.39.54] ut: udev 242936 0 242936 0% / dev [159.89.39.54] ut: tmpfs 50004 6020 43984 13% / løp [159.89.39.54] ut: / dev / vda1 20145768 4398716 15730668 22% / [159.89.39.54] ut: tmpfs 250012 1004 249008 1% / dev / shm [159.89.39.54] ut: tmpfs 5120 0 5120 0 % / run / lock [159.89.39.54] ut: tmpfs 250012 0 250012 0% / sys / fs / cgroup [159.89.39.54] ut: / dev / vda15 106858 3426 103433 4% / boot / efi [159.89.39.54] ut : tmpfs 50004 0 50004 0% / løp / bruker / 0 [159.89.39.54] ut: ingen 20145768 4398716 15730668 22% / var / lib / docker / aufs / mnt / 781d1ce30963c0fa8af93b5679bf96425a0a10039d10be8e745e1a22a9909105 [159.89.39.54] ut: shm 65536 0 65536 0 % / var / lib / docker / containere / 036b6bcd5344f13fdb1fc738752a0850219c7364b1a3386182fead0dd8b7460b / shm [159.89.39 0,54] ut: ingen 20145768 4398716 15730668 22% / var / lib / havnearbeider / aufs / mnt / 17934c0fe3ba83e54291c1aebb267a2762ce9de9f70303a65b12f808444dee80 [159.89.39.54] ut: SHM 65 536 0 65 536 0% / var / lib / havnearbeider / beholdere / fd90146ad4bcc0407fced5e5fbcede5cdd3cff3e96ae951a88f0779ec9c2e42d / shm [159,89 .39.54] ut: ingen 20145768 4398716 15730668 22% / var / lib / havnearbeider / aufs / mnt / ba628f525b9f959664980a73d94826907b7df31d54c69554992b3758f4ea2473 [159.89.39.54] ut: SHM 65 536 0 65 536 0% / var / lib / havnearbeider / beholdere / dbf34128cafb1a1ee975f56eb7637b1da0bfd3648e64973e8187ec1838e0ea44 / shm [159,89 .39.54] ut: Utført. Kobler fra 159.89.39.54 ... ferdig.
Stoff gjør det mulig å kjøre kommandoer på en ekstern server uten å måtte logge på den eksterne serveren.
Ekstern utførelse med Fabric kan føre til sikkerhetstrusler, siden det krever en åpen SSH-port, spesielt på Linux-maskiner.
For eksempel, anta at du vil oppdatere systembiblioteker på den eksterne serveren din. Du trenger ikke nødvendigvis å utføre oppgavene hver annen gang. Du kan bare skrive en enkel fab-fil som du vil kjøre hver gang du vil utføre oppgavene.
I dette tilfellet importerer du først stoffet API-modulen:
fra fabric.api import *
Definer den eksterne verten du vil oppdatere:
env.hosts = '159.89.39.54'
Angi brukernavnet til den eksterne verten:
env.user = "root"
Selv om det ikke anbefales, må du kanskje angi passordet til den eksterne verten.
Til slutt definerer du funksjonen som oppdaterer bibliotekene i den eksterne verten.
def update_libs (): "" "Oppdater standard OS-installasjonens grunnleggende standardverktøy." "" run ("apt-get update")
Nå som din fab-fil er klar, er alt du trenger å gjøre, utført som følger:
$ fab oppdatering
Du bør se følgende resultat:
$ fab-oppdatering [159.89.39.54] Utfør oppgaven 'update' [159.89.39.54] run: apt-get update [159.89.39.54] Logg inn passord for 'root':
Hvis du ikke har definert passordet, blir du bedt om det.
Etter at programmet har fullført de definerte kommandoene, får du følgende svar, hvis det ikke oppstår feil:
$ fab oppdatering ... Koble fra 159.89.39.54 ... ferdig.
Denne opplæringen har dekket det som er nødvendig for å komme i gang med Fabric lokalt og på eksterne verter. Du kan nå trygt begynne å skrive egne skript for å bygge, overvåke eller vedlikeholde eksterne servere.