Jako uživatel systému Linux jste pravděpodobně obeznámeni s nástroji, které vám umožňují stahovat soubory ze vzdálených serverů pomocí protokolů HTTP, HTTPS a FTP, například wget a cURL. Při provádění automatizačních úloh budete občas muset stáhnout soubory a balíčky na vzdálené hostitele. I když k provedení této funkce můžete na vzdálených hostitelích použít wget a cURL, můžete také obejít požadovanou instalaci pro použití těchto nástrojů pomocí modulu Ansible get_url.
V tomto kurzu se dozvíte, jak pomocí příkazu Ansible get_url stahovat soubory ze vzdálených serverů.
Než začneme, vyžaduje příkaz Ansible get_url následující předpoklady:
- Vzdálený server, ze kterého se mají soubory stáhnout, by měl mít přímý přístup k hostitelskému serveru.
- Hostitelský server by měl podporovat protokoly HTTP i HTTPS.
O modulu get_url
Než se dozvíte, jak implementovat modul get_url, nejprve je o tomto modulu několik věcí, které stojí za pochopení. Modul get_url podporuje následující funkce:
- Stažení a ověření kontrolního součtu ze serveru
- Servery HTTP, HTTPS a FTP
- Proxy servery, které lze specifikovat pomocí
_proxy směrnice - Nastavení časového limitu pro požadavky na získání
- Procházení webu
- Základní autorizace webu
Dále vám ukážeme, jak používat modul get_url ke stahování souborů s různými protokoly a konfiguracemi.
Používání modulu get_url k získávání souborů
Následuje několik příkladů, které můžete implementovat pomocí modulu get_url při stahování souborů ze vzdáleného serveru.
Stahujte soubory ze serveru HTTP / HTTPS s přímou adresou URL
Zvažte následující příručku, která vytváří adresář v ~ /.local a ke stažení balíčku MySQL Debianu používá modul get_url.
POZNÁMKA: Balíčky serverů MYSQL najdete v níže uvedeném zdroji:
https: // linkfy.do / mysql-balíčků
- hostitelé: všichni- name: Stáhněte si server Debian MySQL pomocí HTTP / HTTPS
úkoly:
- name: Vytvořte adresář mysql-server v / home / user /.místní
soubor:
cesta: ~ /.místní / mysql-server
stát: adresář
režim: 0777
- name: ZÍSKEJTE balíčky serveru MySQL
get_url:
url: „https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet"
cíl: ~ /.místní / mysql-server
režim: 0777
kontrolní součet: md5: 5568e206a187a3b658392520540f556e
Výše uvedená příručka začíná vytvořením adresáře v $ HOME /.local / mysql-server, kde by měl být stažený balíček uložen. Pokud vytváříte adresář v privilegovaném adresáři, nezapomeňte použít direktivu 'become'.
Dále hrací kniha volá modul get_url a určuje adresu URL, ze které se má balíček stáhnout, následovaný cílovým adresářem, do kterého se má soubor uložit. Poslední část příručky určuje kontrolní součet md5 ke kontrole platnosti souboru.
POZNÁMKA: Ve výše uvedené příručce jsme kontrolní kód pevně zakódovali, ale můžete zadat adresu URL, na které je kontrolní součet hostován.
Po spuštění příručky získáte výstup označující úspěch nebo neúspěch úkolů.
$ ansible-playbook download_mysql_server.yml PLAY [Stáhnout server Debian MySQL pomocí HTTP / HTTPS] *************************************** ********************************* * ********************************* * *******************ÚLOHA [Shromáždění faktů] ******************************************** ********************************* * ********************************* * **********************************
ok: [35.222.210.12]
ÚLOHA [Vytvořit adresář mysql-server v / home / user /.místní] ********************************************** ********************************* * ************************************************ ***********
35.222.210.12: ok = 3 změněno = 1 nedosažitelný = 0 selhal = 0 přeskočen = 0 zachráněn = 0 ignorován = 0
Po dokončení procesu se můžete přihlásit k hostiteli a ověřit, zda soubor existuje.
Stahujte soubory s kontrolním součtem sha256
Můžete také stáhnout soubory a ověřit je pomocí kontrolního součtu sha256, jak je ukázáno v níže uvedeném příkladu příručky:
- hostitelé: všichni- name: Stáhněte si server Debian MySQL pomocí HTTP / HTTPS
úkoly:
- name: Vytvořte adresář mysql-server v / home / user /.místní
soubor:
cesta: ~ /.místní / mysql-server
stát: adresář
režim: 0777
- name: ZÍSKEJTE balíčky serveru MySQL
get_url:
url: https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet
cíl: ~ /.místní / mysql-server
režim: 0777
kontrolní součet: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Chcete-li místo pevného kódování kontrolního součtu použít adresu URL, zvažte následující příklad:
- hostitelé: všichni- name: Stáhněte si server Debian MySQL pomocí HTTP / HTTPS
úkoly:
- name: Vytvořte adresář mysql-server v / home / user /.místní
soubor:
cesta: ~ /.místní / mysql-server
stát: adresář
režim: 0777
- name: ZÍSKEJTE balíčky serveru MySQL
get_url:
url: https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet
cíl: ~ /.místní / mysql-server
režim: 0777
kontrolní součet: sha256: https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet.sha265
Stahujte soubory s vypršením časového limitu při nereagování
V některých případech můžete mít zadanou adresu URL prostředku, jejíž odpověď může trvat déle nebo není k dispozici. To může způsobit ukončení připojení, než server odpoví, protože výchozí časový limit je obvykle 10 sekund. Chcete-li explicitně zadat hodnotu časového limitu, použijte časový limit:
Zvažte následující příručku:
- hostitelé: všichni- name: Stáhnout server Debian MySQL s časovým limitem
úkoly:
- name: Vytvořte adresář mysql-server v / home / user /.místní
soubor:
cesta: ~ /.místní / mysql-server
stát: adresář
režim: 0777
- name: ZÍSKEJTE balíčky serveru MySQL
get_url:
url: https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet
cíl: ~ /.místní / mysql-server
režim: 0777
kontrolní součet: sha256: https: // stahování.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.dehet.sha265
časový limit: 30
Výše uvedená příručka určuje časový limit 30 sekund a připojení bude zrušeno, pokud server neodpoví ve stanoveném čase.
Stahujte soubory s ověřením
Chcete-li stáhnout soubor na server, který vyžaduje ověření, budete muset zadat přihlašovací hodnoty.
Zvažte následující příručku:
- hostitelé: všichni- name: Stáhnout soubor s ověřením
stát se: ano
get_url:
url: http: // 102.15.192.120 / zálohy / databáze.dehet.gz
cíl: / zálohy
uživatelské jméno: uživatel
heslo: 'pass'
režim: 0777
časový limit: 5
Stahujte soubory z místní cesty souborů
Chcete-li stáhnout soubor z místní cesty k souboru, můžete použít schéma souboru: // URI, následované cestou k souboru.
Zvažte následující příručku:
- hostitelé: webové servery- name: Stáhnout soubor z cesty k místnímu souboru
stát se: ano
get_url:
url: file: /// backups / secure / config.dehet.gz
dest: / dev / null
Stahujte soubory FTP
Stahování souborů FTP je velmi podobné procesu popsanému v předchozí části. Vše, co musíte udělat, je zadat ftp: // jako protokol k serveru.
Chcete-li stáhnout zabezpečený soubor, musíte také přidat přihlašovací údaje, jak je uvedeno výše.
Zvažte následující příručku:
- hostitelé: všichniúkoly:
- name: Stáhnout soubor ze serveru FTP
stát se: ano
get_url:
url: ftp: // 192.168.11.101
cíl: / zálohy
režim: 0777
Možné možnosti modulu get_url
Modul get_url také podporuje různé možnosti, které můžete použít k určení a sledování stahování a správy souborů. Možnosti dostupné v modulu get_url zahrnují následující:
- Záloha: Možnost zálohování, logická hodnota ano a ne, umožňuje určit, zda se má vytvořit záložní kopie souboru ke stažení.
- Skupina: Možnost skupina určuje skupinu, která má vlastnictví staženého souboru; tato možnost je jako příkaz chown v Unixu.
- Záhlaví: Možnost záhlaví se používá k určení vlastních záhlaví HTTP ve slovníku ve formátu hash.
- http_agent: Možnost http_agent určuje agenta HTTP.
- Majitel: Možnost Vlastník určuje vlastníka stahovaných souborů.
- Seusere: Možnost seuser nastaví uživatele v kontextu souboru SELinux.
- použij proxy: Možnost use_proxy nastavuje, zda má být použit proxy. Pokud je tato možnost nastavena na hodnotu False, budou všechny servery proxy ignorovány, i když v cílovém hostiteli máte jeden.
Závěr
Tento článek podrobně popsal modul get_url v Ansible a ukázal vám, jak pomocí tohoto modulu stahovat soubory z různých zdrojů. Tento článek můžete použít k odkazu, jak stahovat soubory v Ansible pomocí modulu get_url.