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, 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:

  1. Den eksterne serveren som filen (e) skal lastes ned, skal ha direkte tilgang til vertsserveren.
  2. Vertserveren 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 få ting som er verdt å forstå om denne modulen. Get_url -modulen støtter følgende funksjoner:

  • Sjekksum nedlasting og validering fra serveren
  • HTTP, HTTPS og FTP -servere
  • Proxy -servere, som kan spesifiseres av _proxy -direktivet
  • Angi en timeout for å få forespørsler
  • Web crawling
  • Grunnleggende nettgodkjenning

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:

  • Sikkerhetskopi: Sikkerhetskopieringsalternativet, en boolsk av ja og nei, lar deg spesifisere om du vil opprette 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: Headers -alternativet brukes til å spesifisere tilpassede HTTP -overskrifter i en ordbok i hasjformat.
  • http_agent: HTTP_AGENT -alternativet spesifiserer HTTP -agenten.
  • Eieren: Eieralternativet spesifiserer eieren av nedlastingsfilene.
  • Seuser: Seuser -alternativet angir brukeren i Selinux -filkonteksten.
  • bruk proxy: Alternativet for bruk_proxy angir om en fullmakt skal brukes. Hvis dette alternativet er satt til usant, vil alle fullmakter bli ignorert, selv om du har en spesifisert i målverten.

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.