Ansible

Hvordan laste ned filer ved hjelp av Ansible get_url-modulen

Hvordan laste ned filer ved hjelp av Ansible get_url-modulen

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:

  1. Den eksterne serveren som filene skal lastes ned fra, skal ha direkte tilgang til vertsserveren.
  2. 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:

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: direktivet.

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: alle
oppgaver:
- 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:

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.

Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...