Synlig

Sådan downloades filer ved hjælp af Ansible get_url-modulet

Sådan downloades filer ved hjælp af Ansible get_url-modulet

Som Linux-bruger er du sandsynligvis fortrolig med værktøjer, der giver dig mulighed for at downloade filer fra eksterne servere ved hjælp af HTTP-, HTTPS- og FTP-protokoller, såsom wget og cURL. Når du udfører automatiseringsopgaver, skal du lejlighedsvis downloade filer og pakker til eksterne værter. Mens du kan bruge wget og cURL på fjernværterne til at udføre denne funktion, kan du også omgå den nødvendige installation for at bruge disse værktøjer ved hjælp af Ansible get_url-modulet.

Denne vejledning viser dig, hvordan du bruger kommandoen Ansible get_url til at downloade filer fra eksterne servere.

Inden vi begynder, kræver Ansible get_url-kommandoen følgende forudsætninger:

  1. Den eksterne server, hvorfra filerne skal downloades, skal have direkte adgang til værtsserveren.
  2. Værtsserveren skal understøtte både HTTP- og HTTPS-protokoller.

Om get_url-modulet

Før du lærer om, hvordan du implementerer get_url-modulet, er der først et par ting, der er værd at forstå ved dette modul. Get_url-modulet understøtter følgende funktioner:

Dernæst viser vi dig, hvordan du bruger get_url-modulet til at downloade filer med forskellige protokoller og konfigurationer.

Brug get_url-modulet til at hente filer

Følgende er nogle eksempler, som du kan implementere ved hjælp af get_url-modulet, når du downloader filer fra en ekstern server.

Download filer fra HTTP / HTTPS-server med direkte URL

Overvej følgende playbook, der opretter en mappe i ~ /.lokalt og bruger get_url-modulet til at downloade Debian MySQL-pakken.

BEMÆRK: Du kan finde MYSQL-serverpakker i nedenstående ressource:

https: // linkfy.til / mysql-pakker

- værter: alle
- navn: Download Debian MySQL-server ved hjælp af HTTP / HTTPS
opgaver:
- navn: Gør kataloget til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
tilstand: 0777
- navn: GET MySQL-serverpakker
get_url:
url: “https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære"
dest: ~ /.lokal / mysql-server
tilstand: 0777
kontrolsum: md5: 5568e206a187a3b658392520540f556e

Ovenstående playbook starter med at oprette et bibliotek i $ HOME /.local / mysql-server, hvor den downloadede pakke skal gemmes. Hvis du opretter en mappe i en privilegeret mappe, skal du huske at bruge 'blive' direktivet.

Derefter kalder playbooken get_url-modulet og specificerer den URL, hvorfra pakken skal downloades, efterfulgt af destinationsmappen, hvor filen skal gemmes. Det sidste afsnit i playbook specificerer md5-kontrolsummen for at kontrollere gyldigheden af ​​filen.

BEMÆRK: I ovenstående playbook har vi hårdkodet kontrolsummen, men du kan angive den URL, hvor kontrolsummen er hostet.

Når du har kørt playbooken, får du en output, der angiver, om opgaverne er succesrige eller mislykkede.

$ ansible-playbook download_mysql_server.yml PLAY [Download Debian MySQL-server ved hjælp af HTTP / HTTPS] ************************************** ************************************************** ************************************************* ******************
OPGAVER [Indsamling af fakta] ********************************************* ************************************************** ************************************************** *****************************************
ok: [35.222.210.12]
OPGAVER [Gør mappe til mysql-server i / home / user /.lokal] ************************************************ ************************************************** ************************************************* ***********
35.222.210.12: ok = 3 ændret = 1 ikke tilgængelig = 0 mislykkedes = 0 springet over = 0 reddet = 0 ignoreret = 0

Når processen er afsluttet, kan du logge ind på værten og kontrollere, om filen findes.

Download filer med sha256 kontrolsum

Du kan også downloade filer og kontrollere dem ved hjælp af sha256-kontrolsummen, som vist i eksemplet på playbook nedenfor:

- værter: alle
- navn: Download Debian MySQL-server ved hjælp af HTTP / HTTPS
opgaver:
- navn: Gør kataloget til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
tilstand: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære
dest: ~ /.lokal / mysql-server
tilstand: 0777
kontrolsum: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Hvis du vil bruge en URL i stedet for hardcoding af kontrolsummen, skal du overveje følgende eksempel:

- værter: alle
- navn: Download Debian MySQL-server ved hjælp af HTTP / HTTPS
opgaver:
- navn: Gør kataloget til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
tilstand: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære
dest: ~ /.lokal / mysql-server
tilstand: 0777
kontrolsum: sha256: https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære.sha265

Download filer med timeout ved manglende svar

I nogle tilfælde har du muligvis en bestemt ressource-URL, der kan tage længere tid at svare på eller er utilgængelig. Dette kan få forbindelsen til at lukke, før serveren reagerer, da standard timeout normalt er 10 sekunder. For at eksplicit angive timeoutværdien skal du bruge timeout: direktiv.

Overvej følgende playbook:

- værter: alle
- navn: Download Debian MySQL-server med timeout
opgaver:
- navn: Gør kataloget til mysql-server i / home / user /.lokal
fil:
sti: ~ /.lokal / mysql-server
tilstand: katalog
tilstand: 0777
- navn: GET MySQL-serverpakker
get_url:
url: https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære
dest: ~ /.lokal / mysql-server
tilstand: 0777
kontrolsum: sha256: https: // downloads.mysql.com / arkiver / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bundt.tjære.sha265
timeout: 30

Ovenstående playbook specificerer timeout som 30 sekunder, og forbindelsen afbrydes, hvis serveren ikke reagerer inden for den indstillede tid.

Download filer med godkendelse

For at downloade en fil til en server, der kræver godkendelse, skal du angive loginværdierne.

Overvej følgende playbook:

- værter: alle
- navn: Download fil med godkendelse
blive: ja
get_url:
url: http: // 102.15.192.120 / sikkerhedskopier / database.tjære.gz
dest: / sikkerhedskopier
brugernavn: bruger
adgangskode: 'pass'
tilstand: 0777
timeout: 5

Download filer fra den lokale filsti

For at downloade en fil fra en lokal filsti kan du bruge filen: // URI-ordningen efterfulgt af stien til filen.

Overvej følgende playbook:

- værter: webservere
- navn: Download fil fra den lokale filsti
blive: ja
get_url:
url: fil: /// sikkerhedskopier / sikker / konfiguration.tjære.gz
dest: / dev / null

Download FTP-filer

Downloading af FTP-filer svarer meget til processen beskrevet i det foregående afsnit. Alt hvad du skal gøre er at angive ftp: // som protokollen til serveren.

For at downloade en sikker fil skal du også tilføje loginoplysningerne som vist tidligere.

Overvej følgende playbook:

- værter: alle
opgaver:
- navn: Download fil fra FTP-server
blive: ja
get_url:
url: ftp: // 192.168.11.101
dest: / sikkerhedskopier
tilstand: 0777

Ansible get_url Modulindstillinger

Get_url-modulet understøtter også forskellige muligheder, som du kan bruge til at specificere og overvåge fildownload og -styring. De tilgængelige muligheder med get_url-modulet inkluderer følgende:

Konklusion

Denne artikel diskuterede get_url-modulet i Ansible i detaljer og viste dig, hvordan du bruger dette modul til at downloade filer fra forskellige kilder. Du kan bruge denne artikel til at henvise til, hvordan du downloader filer i Ansible ved hjælp af get_url-modulet.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...