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, må du noen ganger laste ned filer og pakker til eksterne verter. Mens du kan bruke wget og cURL på eksterne verter for å 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 veiledningen viser deg hvordan du bruker kommandoen Ansible get_url til å laste ned filer fra eksterne servere.
Før vi begynner, krever Ansible get_url-kommandoen følgende forutsetninger:
- Den eksterne serveren som filene skal lastes ned fra, skal ha direkte tilgang til vertsserveren.
- Vertsserveren skal støtte både HTTP- og HTTPS-protokoller.
Om get_url-modulen
Før du lærer om hvordan du implementerer get_url-modulen, er det først noen ting som er verdt å forstå med denne modulen. Get_url-modulen støtter følgende funksjoner:
- Kontrollsum nedlasting og validering fra serveren
- HTTP-, HTTPS- og FTP-servere
- Proxy-servere, som kan spesifiseres av
_ proxy-direktiv - Angi en tidsavbrudd for få forespørsler
- Nettgjennomgang
- Grunnleggende nettautorisasjon
Deretter vil vi vise deg hvordan du bruker get_url-modulen til å laste ned filer med forskjellige protokoller og konfigurasjoner.
Bruke 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 finner MYSQL-serverpakker i ressursen nedenfor:
https: // linkfy.til / mysql-pakker
- verter: alle- navn: Last ned Debian MySQL-server ved hjelp av HTTP / HTTPS
oppgaver:
- navn: Gjør katalogen til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
modus: 0777
- navn: GET MySQL-serverpakker
get_url:
url: “https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære"
dest: ~ /.lokal / mysql-server
modus: 0777
sjekksum: md5: 5568e206a187a3b658392520540f556e
Spillboken ovenfor starter med å opprette en katalog i $ HOME /.lokal / mysql-server, der den nedlastede pakken skal lagres. Hvis du oppretter en katalog i en privilegert katalog, husk å bruke "bli" -direktivet.
Deretter kaller lekeboken get_url-modulen og spesifiserer URL-en som pakken skal lastes ned fra, etterfulgt av destinasjonskatalogen som filen skal lagres til. Den siste delen av spillboken spesifiserer md5-kontrollsummen for å kontrollere gyldigheten av filen.
MERK: I spillboken ovenfor har vi hardkodet kontrollsummen, men du kan spesifisere URL-en der kontrollsummen er vert.
Etter at du har kjørt spillboken, får du en utgang som indikerer at oppgavene er vellykkede eller mislykkede.
$ ansible-playbook download_mysql_server.yml SPILL [Last ned Debian MySQL-server ved hjelp av HTTP / HTTPS] ************************************* ************************************************* ************************************************* ******************OPPGAVE [Gathering Facts] ********************************************* ************************************************* ************************************************* ****************************************
ok: [35.222.210.12]
OPPGAVE [Lag katalog til mysql-server i / home / user /.lokal] *********************************************** ************************************************* ************************************************* ***********
35.222.210.12: ok = 3 endret = 1 ikke tilgjengelig = 0 mislyktes = 0 hoppet over = 0 reddet = 0 ignorert = 0
Når prosessen er fullført, kan du logge på verten og kontrollere om filen eksisterer.
Last ned filer med sha256 kontrollsum
Du kan også laste ned filer og kontrollere dem ved hjelp av sjekksummen sha256, som vist i eksemplet på spillboken nedenfor:
- verter: alle- navn: Last ned Debian MySQL-server ved hjelp av HTTP / HTTPS
oppgaver:
- navn: Gjør katalogen til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
modus: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære
dest: ~ /.lokal / mysql-server
modus: 0777
sjekksum: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Hvis du vil bruke en URL i stedet for å hardkode kontrollsummen, bør du vurdere følgende eksempel:
- verter: alle- navn: Last ned Debian MySQL-server ved hjelp av HTTP / HTTPS
oppgaver:
- navn: Gjør katalogen til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
modus: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære
dest: ~ /.lokal / mysql-server
modus: 0777
sjekksum: sha256: https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære.sha265
Last ned filer med tidsavbrudd ved ikke å svare
I noen tilfeller kan det hende du har en spesifisert ressurs-URL som det kan ta lengre tid å svare på, eller er utilgjengelig. Dette kan føre til at forbindelsen lukkes før serveren reagerer, da standard tidsavbrudd vanligvis er 10 sekunder. For å eksplisitt spesifisere tidsavbruddsverdien, bruk tidsavbruddet:
Tenk på følgende spillbok:
- verter: alle- navn: Last ned Debian MySQL-server med tidsavbrudd
oppgaver:
- navn: Gjør katalogen til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
modus: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære
dest: ~ /.lokal / mysql-server
modus: 0777
sjekksum: sha256: https: // nedlastinger.mysql.no / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-pakke.tjære.sha265
tidsavbrudd: 30
Spillboken ovenfor angir tidsavbruddet som 30 sekunder, og forbindelsen blir avbrutt hvis serveren ikke svarer innen den angitte tiden.
Last ned filer med autentisering
For å laste ned en fil til en server som krever godkjenning, 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: / sikkerhetskopier
brukernavn: bruker
passord: 'pass'
modus: 0777
tidsavbrudd: 5
Last ned filer fra lokal filsti
For å laste ned en fil fra en lokal filbane, 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: file: /// backup / secure / config.tjære.gz
dest: / dev / null
Last ned FTP-filer
Nedlasting av FTP-filer er veldig lik prosessen beskrevet i forrige avsnitt. 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: alleoppgaver:
- navn: Last ned fil fra FTP-server
bli: ja
get_url:
url: ftp: // 192.168.11.101
dest: / sikkerhetskopier
modus: 0777
Ansible get_url Modulalternativer
Get_url-modulen støtter også forskjellige alternativer du kan bruke til å spesifisere og overvåke nedlasting og administrering av filer. Alternativene som er tilgjengelige med get_url-modulen inkluderer følgende:
- Sikkerhetskopiering: Sikkerhetskopieringsalternativet, en boolsk av ja og nei, lar deg spesifisere om du vil lage en sikkerhetskopi av filen som skal lastes ned.
- Gruppe: Gruppealternativet spesifiserer gruppen som har eierskap til den nedlastede filen; dette alternativet er som chown-kommandoen i Unix.
- Overskrifter: Overskriftsalternativet brukes til å spesifisere egendefinerte HTTP-overskrifter i en ordbok i hash-format.
- http_agent: Alternativet http_agent spesifiserer HTTP-agenten.
- Eieren: Eieralternativet spesifiserer eieren av nedlastingsfilene.
- Seuser: Alternativet for bruker angir brukeren i SELinux-filkontekst.
- bruk proxy: Alternativet use_proxy angir om en proxy skal brukes. Hvis dette alternativet er satt til falsk, vil alle fullmakter ignoreres, selv om du har en spesifisert i målverdien.
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 for å referere til hvordan du laster ned filer i Ansible ved hjelp av get_url-modulen.