Ansible

Hur man laddar ner filer med Ansible get_url-modulen

Hur man laddar ner filer med Ansible get_url-modulen

Som Linux-användare är du förmodligen bekant med verktyg som låter dig ladda ner filer från fjärrservrar med HTTP-, HTTPS- och FTP-protokoll, som wget och cURL. När du utför automatiseringsuppgifter måste du ibland ladda ner filer och paket till fjärrvärdar. Medan du kan använda wget och cURL på fjärrvärdarna för att utföra den här funktionen kan du också kringgå den installation som krävs för att använda dessa verktyg med Ansible get_url-modulen.

Denna handledning visar hur du använder kommandot Ansible get_url för att ladda ner filer från fjärrservrar.

Innan vi börjar kräver Ansible get_url följande förutsättningar:

  1. Fjärrservern från vilken filerna ska laddas ner ska ha direkt åtkomst till värdservern.
  2. Värdservern ska stödja både HTTP- och HTTPS-protokoll.

Om get_url-modulen

Innan du lär dig hur du implementerar get_url-modulen, finns det först några saker som är värda att förstå om den här modulen. Get_url-modulen stöder följande funktioner:

Därefter visar vi dig hur du använder get_url-modulen för att ladda ner filer med olika protokoll och konfigurationer.

Använda get_url-modulen för att hämta filer

Följande är några exempel som du kan implementera med get_url-modulen när du laddar ner filer från en fjärrserver.

Ladda ner filer från HTTP / HTTPS-server med direkt URL

Tänk på följande spelbok som skapar en katalog i ~ /.lokal och använder get_url-modulen för att ladda ner Debian MySQL-paketet.

NOTERA: Du hittar MYSQL-serverpaket i resursen nedan:

https: // linkfy.till / mysql-paket

- värdar: alla
- namn: Ladda ner Debian MySQL-server med HTTP / HTTPS
uppgifter:
- namn: Gör katalogen till mysql-server i / home / user /.lokal
fil:
sökväg: ~ /.lokal / mysql-server
tillstånd: katalog
läge: 0777
- namn: GET MySQL-serverpaket
get_url:
url: “https: // nedladdningar.mysql.com / arkiv / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära"
dest: ~ /.lokal / mysql-server
läge: 0777
kontrollsumma: md5: 5568e206a187a3b658392520540f556e

Ovanstående spelbok börjar med att skapa en katalog i $ HOME /.lokal / mysql-server, där det nedladdade paketet ska lagras. Om du skapar en katalog i en privilegierad katalog, kom ihåg att använda "bli" -direktivet.

Därefter ringer uppspelningsboken till get_url-modulen och anger URL: en från vilken paketet ska hämtas, följt av målkatalogen som filen ska lagras till. Det sista avsnittet i spelboken specificerar md5-kontrollsumman för att kontrollera giltigheten av filen.

NOTERA: I spelboken ovan har vi hårdkodat kontrollsumman, men du kan ange webbadressen till vilken kontrollsummen är värd.

När du har kört spelboken får du en utgång som anger att uppgifterna har lyckats eller misslyckats.

$ ansible-playbook download_mysql_server.yml SPELA [Ladda ner Debian MySQL-server med HTTP / HTTPS] ************************************* ************************************************* ************************************************* ******************
UPPGIFT [Fakta om samlingen] ********************************************* ************************************************* ************************************************* *****************************************
ok: [35.222.210.12]
TASK [Gör katalogen till mysql-server i / home / user /.lokal] ************************************************ ************************************************* ************************************************* ***********
35.222.210.12: ok = 3 har ändrats = 1 kan inte nås = 0 misslyckades = 0 hoppas över = 0 räddas = 0 ignoreras = 0

När processen är klar kan du logga in på värden och verifiera om filen finns.

Ladda ner filer med sha256 kontrollsumma

Du kan också ladda ner filer och verifiera dem med kontrollsumman sha256, som visas i exemplet playbook nedan:

- värdar: alla
- namn: Ladda ner Debian MySQL-server med HTTP / HTTPS
uppgifter:
- namn: Gör katalogen till mysql-server i / home / user /.lokal
fil:
sökväg: ~ /.lokal / mysql-server
tillstånd: katalog
läge: 0777
- namn: GET MySQL-serverpaket
get_url:
url: https: // nedladdningar.mysql.com / arkiv / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära
dest: ~ /.lokal / mysql-server
läge: 0777
kontrollsumma: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

För att använda en URL istället för att hårdkoda kontrollsumman, överväga följande exempel:

- värdar: alla
- namn: Ladda ner Debian MySQL-server med HTTP / HTTPS
uppgifter:
- namn: Gör katalogen till mysql-server i / home / user /.lokal
fil:
sökväg: ~ /.lokal / mysql-server
tillstånd: katalog
läge: 0777
- namn: GET MySQL-serverpaket
get_url:
url: https: // nedladdningar.mysql.com / arkiv / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära
dest: ~ /.lokal / mysql-server
läge: 0777
kontrollsumma: sha256: https: // nedladdningar.mysql.com / arkiv / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära.sha265

Ladda ner filer med timeout vid misslyckande att svara

I vissa fall kan det hända att du har en specifik resurs-URL som det kan ta längre tid att svara eller är otillgänglig. Detta kan få anslutningen att stängas innan servern svarar, eftersom standard timeout vanligtvis är 10 sekunder. För att uttryckligen specificera timeoutvärdet, använd timeout: direktiv.

Tänk på följande spelbok:

- värdar: alla
- namn: Ladda ner Debian MySQL-server med timeout
uppgifter:
- namn: Gör katalogen till mysql-server i / home / user /.lokal
fil:
sökväg: ~ /.lokal / mysql-server
tillstånd: katalog
läge: 0777
- namn: GET MySQL-serverpaket
get_url:
url: https: // nedladdningar.mysql.com / arkiv / get / p / 23 / fil / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära
dest: ~ /.lokal / mysql-server
läge: 0777
kontrollsumma: sha256: https: // nedladdningar.mysql.com / arkiv / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bunt.tjära.sha265
timeout: 30

Ovanstående spelbok anger tidsgränsen som 30 sekunder och anslutningen kommer att avbrytas om servern inte svarar inom den inställda tiden.

Ladda ner filer med autentisering

För att ladda ner en fil till en server som kräver autentisering måste du ange inloggningsvärdena.

Tänk på följande spelbok:

- värdar: alla
- namn: Ladda ner fil med autentisering
bli: ja
get_url:
url: http: // 102.15.192.120 / säkerhetskopior / databas.tjära.gz
dest: / säkerhetskopior
användarnamn: användare
lösenord: 'pass'
läge: 0777
timeout: 5

Ladda ner filer från lokal filsökväg

För att ladda ner en fil från en lokal filsökväg kan du använda fil: // URI-schemat, följt av sökvägen till filen.

Tänk på följande spelbok:

- värdar: webbservrar
- namn: Ladda ner fil från lokal filsökväg
bli: ja
get_url:
url: file: /// backups / secure / config.tjära.gz
dest: / dev / null

Ladda ner FTP-filer

Nedladdning av FTP-filer liknar den process som beskrivs i föregående avsnitt. Allt du behöver göra är att ange ftp: // som protokoll till servern.

För att ladda ner en säker fil måste du också lägga till inloggningsinformationen, som visas tidigare.

Tänk på följande spelbok:

- värdar: alla
uppgifter:
- namn: Ladda ner fil från FTP-server
bli: ja
get_url:
url: ftp: // 192.168.11.101
dest: / säkerhetskopior
läge: 0777

Ansible get_url Modulalternativ

Get_url-modulen stöder också olika alternativ som du kan använda för att specificera och övervaka nedladdning och hantering av filer. Alternativen som är tillgängliga med get_url-modulen inkluderar följande:

Slutsats

Den här artikeln diskuterade get_url-modulen i Ansible i detalj och visade dig hur du använder den här modulen för att ladda ner filer från olika källor. Du kan använda den här artikeln för att referera till hur du laddar ner filer i Ansible med get_url-modulen.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...