Som Linux -bruker er du sannsynligvis kjent med verktøy som lar deg laste ned filer fra eksterne servere ved hjelp av HTTP, HTTPS og FTP -protokoller, for eksempel WGET og CURL. Når du utfører automatiseringsoppgaver, trenger du tidvis å laste ned filer og pakker til eksterne verter. Selv om du kan bruke WGET og krøll på de eksterne vertene til å utføre denne funksjonen, kan du også omgå den nødvendige installasjonen for å bruke disse verktøyene ved hjelp av Ansible get_url -modulen.
Denne opplæringen viser deg hvordan du bruker Ansible get_url -kommandoen for å laste ned filer fra eksterne servere.
Før vi begynner, krever Ansible get_url -kommandoen følgende forutsetninger:
Om get_url -modulen
Før du lærer om hvordan du implementerer get_url -modulen, er det først noen få ting som er verdt å forstå om denne modulen. Get_url -modulen støtter følgende funksjoner:
Deretter vil vi vise deg hvordan du bruker get_url -modulen til å laste ned filer med forskjellige protokoller og konfigurasjoner.
Bruker get_url -modulen for å skaffe filer
Følgende er noen eksempler som du kan implementere ved hjelp av get_url -modulen når du laster ned filer fra en ekstern server.
Last ned filer fra http/https -server med direkte url
Tenk på følgende spillbok som oppretter en katalog i ~/.Lokal og bruker get_url -modulen for å laste ned Debian MySQL -pakken.
MERK: Du kan finne MySQL -serverpakker i ressursen som er gitt nedenfor:
https: // linkfy.til/mysql-pakker
- Verter: Alle
- Navn: Last ned Debian MySQL Server ved hjelp av HTTP/HTTPS
oppgaver:
- Navn: Lag katalog mysql-server in/home/user/.lokal
fil:
Sti: ~/.Lokal/mysql-server
Tilstand: Katalog
Mode: 0777
- Navn: Få MySQL-Server-pakker
get_url:
URL: “https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære"
dest: ~/.Lokal/mysql-server
Mode: 0777
Checksum: MD5: 5568e206a187a3b658392520540f556e
Ovennevnte spillbok starter med å lage en katalog i $ hjem/.Lokal/mysql-server, der den nedlastede pakken skal lagres. Hvis du oppretter en katalog i en privilegert katalog, må du huske å bruke "bli" -direktivet.
Deretter ringer spillboken get_url -modulen og spesifiserer URL -en som du vil laste ned pakken, etterfulgt av destinasjonskatalogen du skal lagre filen. Den endelige delen av spillboken spesifiserer MD5 -sjekksum for å sjekke gyldigheten av filen.
MERK: I ovennevnte lekebok har vi hardkodet sjekksummen, men du kan spesifisere URL -en som sjekksummen er vert.
Etter at du har kjørt spillboken, vil du få en utgang som indikerer suksessen eller fiaskoen i oppgavene.
$ ansible-playbook download_mysql_server.YML -spill [Last ned Debian MySQL Server ved hjelp av http/https] ******************************************** ******************************************************** ******************************************************** ******************
Oppgave [Samling fakta] *************************************************** ******************************************************** ******************************************************** *********************************************
OK: [35.222.210.12]
Oppgave [Lag katalog mysql-server in/home/user/.Lokal] **************************************************** ******************************************************** ******************************************************** ***********
35.222.210.12: OK = 3 endret = 1 Utilgjengelig = 0 mislyktes = 0 hoppet over = 0 reddet = 0 ignorert = 0
Når prosessen er fullført, kan du logge på verten og bekrefte om filen eksisterer.
Last ned filer med SHA256 sjekksum
Du kan også laste ned filer og bekrefte dem ved å bruke SHA256 Checksum, som vist i eksemplet Playbook nedenfor:
- Verter: Alle
- Navn: Last ned Debian MySQL Server ved hjelp av HTTP/HTTPS
oppgaver:
- Navn: Lag katalog mysql-server in/home/user/.lokal
fil:
Sti: ~/.Lokal/mysql-server
Tilstand: Katalog
Mode: 0777
- Navn: Få MySQL-Server-pakker
get_url:
URL: https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære
dest: ~/.Lokal/mysql-server
Mode: 0777
Checksum: SHA256: B5BB9D8014A0F9B1D61E21E796D78EEFDF1352F23CD32812F4850B878AE4944C
For å bruke en URL i stedet for å hardkoding av sjekksummen, bør du vurdere følgende eksempel:
- Verter: Alle
- Navn: Last ned Debian MySQL Server ved hjelp av HTTP/HTTPS
oppgaver:
- Navn: Lag katalog mysql-server in/home/user/.lokal
fil:
Sti: ~/.Lokal/mysql-server
Tilstand: Katalog
Mode: 0777
- Navn: Få MySQL-Server-pakker
get_url:
URL: https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære
dest: ~/.Lokal/mysql-server
Mode: 0777
Checksum: SHA256: https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære.SHA265
Last ned filer med timeout ved manglende svar
I noen tilfeller kan du ha en spesifisert ressursadress som kan ta lengre tid å svare eller ikke er tilgjengelig. Dette kan føre til at tilkoblingen lukkes før serveren svarer, da standard timeout er vanligvis 10 sekunder. For eksplisitt å spesifisere tidsavbruddsverdien, bruk timeout: Direktivet.
Tenk på følgende spillbok:
- Verter: Alle
- Navn: Last ned Debian MySQL Server med timeout
oppgaver:
- Navn: Lag katalog mysql-server in/home/user/.lokal
fil:
Sti: ~/.Lokal/mysql-server
Tilstand: Katalog
Mode: 0777
- Navn: Få MySQL-Server-pakker
get_url:
URL: https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære
dest: ~/.Lokal/mysql-server
Mode: 0777
Checksum: SHA256: https: // nedlastinger.mysql.com/arkiver/få/p/23/fil/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.tjære.SHA265
Timeout: 30
Ovennevnte Playbook spesifiserer tidsavbruddet som 30 sekunder, og tilkoblingen vil bli droppet hvis serveren ikke svarer innen den angitte tiden.
Last ned filer med autentisering
For å laste ned en fil til en server som krever autentisering, må du spesifisere påloggingsverdiene.
Tenk på følgende spillbok:
- Verter: Alle
- Navn: Last ned fil med autentisering
Bli: Ja
get_url:
URL: http: // 102.15.192.120/sikkerhetskopier/database.tjære.gz
dest: /backups
Brukernavn: Bruker
Passord: 'pass'
Mode: 0777
Timeout: 5
Last ned filer fra lokal filsti
For å laste ned en fil fra en lokal filsti, kan du bruke filen: // URI -ordningen, etterfulgt av banen til filen.
Tenk på følgende spillbok:
- Verter: Webservere
- Navn: Last ned fil fra lokal filsti
Bli: Ja
get_url:
URL: Fil: /// Backups/Secure/Config.tjære.gz
dest: /dev /null
Last ned FTP -filer
Last ned FTP -filer er veldig lik prosessen som er beskrevet i forrige seksjon. Alt du trenger å gjøre er å spesifisere ftp: // som protokoll til serveren.
For å laste ned en sikker fil, må du også legge til påloggingsinformasjonen, som vist tidligere.
Tenk på følgende spillbok:
- Verter: Alle
oppgaver:
- Navn: Last ned fil fra FTP -serveren
Bli: Ja
get_url:
URL: FTP: // 192.168.11.101
dest: /backups
Mode: 0777
Ansible get_url -modulalternativer
Get_url -modulen støtter også forskjellige alternativer som du kan bruke til å spesifisere og overvåke nedlasting og administrasjon av filer. Alternativene som er tilgjengelige med get_url -modulen inkluderer følgende:
Konklusjon
Denne artikkelen diskuterte get_url -modulen i Ansible i detalj og viste deg hvordan du bruker denne modulen til å laste ned filer fra forskjellige kilder. Du kan bruke denne artikkelen til å referere til hvordan du laster ned filer i Ansible ved hjelp av get_url -modulen.