Linux felhasználóként valószínűleg ismeri azokat az eszközöket, amelyek lehetővé teszik fájlok letöltését távoli szerverekről HTTP, HTTPS és FTP protokollok használatával, mint például a wget és a cURL. Automatizálási feladatok végrehajtásakor időnként fájlokat és csomagokat kell letölteni a távoli gazdagépekre. Bár a távoli hosztokon a wget és a cURL használatával elvégezheti ezt a funkciót, az Ansible get_url modul használatával megkerülheti a szükséges telepítést is, hogy ezeket az eszközöket használja.
Ez az oktatóanyag bemutatja, hogyan lehet az Ansible get_url paranccsal fájlokat letölteni a távoli szerverekről.
Mielőtt elkezdenénk, az Ansible get_url parancs a következő előfeltételeket követeli meg:
- A távoli kiszolgálónak, amelyről a fájl (oka) t le kell tölteni, közvetlen hozzáféréssel kell rendelkeznie a gazdagép kiszolgálóhoz.
- A hosztkiszolgálónak támogatnia kell a HTTP és a HTTPS protokollokat egyaránt.
A get_url modulról
Mielőtt elsajátítaná a get_url modul megvalósítását, először is meg kell értenie néhány dolgot erről a modulról. A get_url modul a következő szolgáltatásokat támogatja:
- Ellenőrző összeg letöltése és érvényesítése a szerverről
- HTTP, HTTPS és FTP szerverek
- Proxy szerverek, amelyeket a
_meghatalmazási irányelv - Időkorlát beállítása a kérések fogadásához
- Internetes bejárás
- Alapvető webes engedélyezés
Ezután megmutatjuk, hogyan használhatja a get_url modult fájlok letöltésére különféle protokollokkal és konfigurációkkal.
A get_url modul használata fájlok megszerzéséhez
Az alábbiakban bemutatunk néhány példát, amelyeket a get_url modul használatával valósíthat meg, amikor fájlokat tölt le egy távoli szerverről.
Fájlok letöltése a HTTP / HTTPS szerverről közvetlen URL-címmel
Vegye figyelembe a következő játékkönyvet, amely könyvtárat hoz létre a ~ /.helyi és a get_url modult használja a Debian MySQL csomag letöltésére.
JEGYZET: A MYSQL szerver csomagokat az alább megadott erőforrásban találhatja meg:
https: // linkfy.to / mysql-csomagokba
- házigazdák: mind- név: Töltse le a Debian MySQL szervert HTTP / HTTPS használatával
feladatok:
- név: A mysql-server könyvtár létrehozása a / home / user / könyvtárban.helyi
fájl:
útvonal: ~ /.local / mysql-server
állapot: könyvtár
mód: 0777
- név: GET MySQL-szerver csomagok
get_url:
URL: „https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány"
cél: ~ /.local / mysql-server
mód: 0777
ellenőrző összeg: md5: 5568e206a187a3b658392520540f556e
A fenti játékkönyv azzal kezdődik, hogy létrehoz egy könyvtárat a $ HOME / könyvtárban.local / mysql-server, ahol a letöltött csomagot tárolni kell. Ha privilegizált könyvtárban hoz létre könyvtárat, ne felejtse el használni a 'tapti' direktívát.
Ezután a játékkönyv meghívja a get_url modult, és meghatározza az URL-t, ahonnan letölti a csomagot, majd a célkönyvtár, ahova a fájlt tárolja. A játékkönyv utolsó szakasza megadja az md5 ellenőrző összeget a fájl érvényességének ellenőrzésére.
JEGYZET: A fenti játékkönyvben keményen kódoltuk az ellenőrző összeget, de megadhatja azt az URL-t, amelyen az ellenőrző összeg tárolódik.
A játékkönyv futtatása után kimenetet kap, amely jelzi a feladatok sikerét vagy sikertelenségét.
$ ansible-playbook download_mysql_server.yml PLAY [Debian MySQL szerver letöltése HTTP / HTTPS segítségével] **************************************** *************************************************** ************************************** ******************FELADAT [Tények összegyűjtése] ********************************************** *************************************************** *************************************************** ******************************************
ok: [35.222.210.12]
FELADAT [A mysql-server könyvtár létrehozása a / home / user / könyvtárban.helyi] ************************************************** *************************************************** *************************************************** ***********
35.222.210.12: ok = 3 megváltozott = 1 elérhetetlen = 0 sikertelen = 0 kihagyott = 0 mentve = 0 figyelmen kívül hagyva = 0
Miután a folyamat befejeződött, bejelentkezhet a gazdagépre, és ellenőrizheti, hogy létezik-e a fájl.
Fájlok letöltése a sha256 ellenőrző összeggel
Fájlokat is letölthet és ellenőrizheti az sha256 ellenőrző összeg segítségével, az alábbi példa alapján:
- házigazdák: mind- név: Töltse le a Debian MySQL szervert HTTP / HTTPS használatával
feladatok:
- név: A mysql-server könyvtár létrehozása a / home / user / könyvtárban.helyi
fájl:
útvonal: ~ /.local / mysql-server
állapot: könyvtár
mód: 0777
- név: GET MySQL-szerver csomagok
get_url:
URL: https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány
cél: ~ /.local / mysql-server
mód: 0777
ellenőrző összeg: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Ha URL-t szeretne használni az ellenőrző összeg kemény kódolása helyett, vegye figyelembe a következő példát:
- házigazdák: mind- név: Töltse le a Debian MySQL szervert HTTP / HTTPS használatával
feladatok:
- név: A mysql-server könyvtár létrehozása a / home / user / könyvtárban.helyi
fájl:
útvonal: ~ /.local / mysql-server
állapot: könyvtár
mód: 0777
- név: GET MySQL-szerver csomagok
get_url:
URL: https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány
cél: ~ /.local / mysql-server
mód: 0777
ellenőrző összeg: sha256: https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány.sha265
Töltse le a válaszadás elmulasztásával kapcsolatos időkorlátos fájlokat
Bizonyos esetekben megadhat egy meghatározott erőforrás URL-t, amelyre hosszabb ideig tart a válaszadás, vagy amely nem érhető el. Ennek következtében a kapcsolat megszakadhat, mielőtt a szerver válaszolna, mivel az alapértelmezett időtúllépés általában 10 másodperc. Az időtúllépés értékének kifejezett megadásához használja az időtúllépést:
Fontolja meg a következő játékkönyvet:
- házigazdák: mind- név: Töltse le a Debian MySQL szervert időtúllépéssel
feladatok:
- név: A mysql-server könyvtár létrehozása a / home / user / könyvtárban.helyi
fájl:
útvonal: ~ /.local / mysql-server
állapot: könyvtár
mód: 0777
- név: GET MySQL-szerver csomagok
get_url:
URL: https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány
cél: ~ /.local / mysql-server
mód: 0777
ellenőrző összeg: sha256: https: // letöltések.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-köteg.kátrány.sha265
időtúllépés: 30
A fenti játékkönyv az időtúllépést 30 másodpercként határozza meg, és a kapcsolat megszakad, ha a szerver nem reagál a megadott időn belül.
Fájlok letöltése hitelesítéssel
Fájl hitelesítést igénylő kiszolgálóra történő letöltéséhez meg kell adnia a bejelentkezési értékeket.
Fontolja meg a következő játékkönyvet:
- házigazdák: mind- név: Fájl letöltése hitelesítéssel
vált: igen
get_url:
URL: http: // 102.15.192.120 / biztonsági mentések / adatbázis.kátrány.gz
dest: / biztonsági mentések
felhasználónév: felhasználó
jelszó: 'pass'
mód: 0777
időtúllépés: 5
Fájlok letöltése a helyi fájlútvonalról
Fájl letöltéséhez egy helyi fájl elérési útvonalról használhatja a file: // URI sémát, amelyet a fájl elérési útja követ.
Fontolja meg a következő játékkönyvet:
- gazdagépek: webszerverek- név: Fájl letöltése a helyi fájl elérési útvonaláról
vált: igen
get_url:
url: file: /// backups / secure / config.kátrány.gz
dest: / dev / null
Töltse le az FTP fájlokat
Az FTP fájlok letöltése nagyon hasonló az előző szakaszban leírt folyamathoz. Mindössze annyit kell tennie, hogy megadja az ftp: // protokollt a szerver számára.
Biztonságos fájl letöltéséhez meg kell adnia a bejelentkezési információkat is, a korábban bemutatott módon.
Fontolja meg a következő játékkönyvet:
- házigazdák: mindfeladatok:
- név: Fájl letöltése az FTP szerverről
vált: igen
get_url:
URL: ftp: // 192.168.11.101
dest: / biztonsági mentések
mód: 0777
Ansible get_url modul beállításai
A get_url modul különféle lehetőségeket is támogat, amelyekkel meghatározhatja és figyelemmel kísérheti a fájlok letöltését és kezelését. A get_url modullal elérhető opciók a következőket tartalmazzák:
- biztonsági mentés: A biztonsági mentési opció, logikai érték igen és nem, lehetővé teszi annak megadását, hogy készítsen-e biztonsági másolatot a letöltendő fájlról.
- Csoport: A csoport opció meghatározza azt a csoportot, amely a letöltött fájl tulajdonjoga; ez az opció olyan, mint a chown parancs a Unixban.
- Fejlécek: A fejlécek beállításával egyedi HTTP fejléceket lehet megadni egy szótárban hash formátumban.
- http_agent: A http_agent opció adja meg a HTTP ügynököt.
- Tulajdonos: A tulajdonos opció adja meg a letöltött fájlok tulajdonosát.
- Seuser: A seuser opció beállítja a felhasználót a SELinux fájlkörnyezetbe.
- Proxy használata: A use_proxy beállítás megadja, hogy proxyt kell-e használni. Ha ez az opció hamis értékre van állítva, akkor az összes proxyt figyelmen kívül hagyja, még akkor is, ha meg van adva egy a célállomáson.
Következtetés
Ez a cikk részletesen taglalta az get_url modult az Ansible részben, és bemutatta, hogyan lehet ezzel a modullal fájlokat letölteni különböző forrásokból. Ebben a cikkben hivatkozhat arra, hogyan lehet fájlokat letölteni az Ansible programba a get_url modul használatával.