Ako používateľ systému Linux pravdepodobne poznáte nástroje, ktoré vám umožňujú sťahovať súbory zo vzdialených serverov pomocou protokolov HTTP, HTTPS a FTP, napríklad wget a cURL. Pri vykonávaní automatizačných úloh budete občas musieť sťahovať súbory a balíky na vzdialených hostiteľov. Aj keď na vykonanie tejto funkcie môžete na vzdialených hostiteľoch použiť wget a cURL, môžete tiež obísť požadovanú inštaláciu, aby ste mohli tieto nástroje používať, pomocou modulu Ansible get_url.
Tento výukový program vám ukáže, ako používať príkaz Ansible get_url na sťahovanie súborov zo vzdialených serverov.
Predtým, ako začneme, vyžaduje príkaz Ansible get_url nasledujúce predpoklady:
- Vzdialený server, z ktorého sa majú súbory stiahnuť, by mal mať priamy prístup k hostiteľskému serveru.
- Hostiteľský server by mal podporovať protokoly HTTP aj HTTPS.
O module get_url
Predtým, ako sa dozviete, ako implementovať modul get_url, je potrebné najskôr porozumieť tomuto modulu niekoľko vecí. Modul get_url podporuje nasledujúce funkcie:
- Stiahnutie a overenie kontrolného súčtu zo servera
- Servery HTTP, HTTPS a FTP
- Proxy servery, ktoré môže určiť server
_proxy direktiva - Nastavuje sa časový limit pre žiadosti o získanie
- Indexové prehľadávanie webu
- Základné povolenie webu
Ďalej si ukážeme, ako používať modul get_url na sťahovanie súborov s rôznymi protokolmi a konfiguráciami.
Používanie modulu get_url na získanie súborov
Nasleduje niekoľko príkladov, ktoré môžete implementovať pomocou modulu get_url pri sťahovaní súborov zo vzdialeného servera.
Stiahnite si súbory zo servera HTTP / HTTPS s priamym URL
Zvážte nasledujúcu príručku, ktorá vytvára adresár v priečinku ~ /.lokálne a na stiahnutie balíka MySQL Debianu používa modul get_url.
POZNÁMKA: Balíky serverov MYSQL nájdete v zdroji uvedenom nižšie:
https: // linkfy.do / mysql-balíkov
- hostitelia: všetci- názov: Stiahnite si server Debian MySQL pomocou protokolu HTTP / HTTPS
úlohy:
- name: Vytvorte adresár mysql-server v / home / user /.miestne
spis:
cesta: ~ /.lokálny / mysql-server
štát: adresár
režim: 0777
- názov: ZÍSKAJTE balíčky serverov MySQL
get_url:
url: „https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht “
cieľ: ~ /.lokálny / mysql-server
režim: 0777
kontrolný súčet: md5: 5568e206a187a3b658392520540f556e
Vyššie uvedená príručka začína vytvorením adresára v $ HOME /.local / mysql-server, kam by sa mal uložiť stiahnutý balík. Ak vytvárate adresár v privilegovanom adresári, nezabudnite použiť smernicu „become“.
Ďalej príručka zavolá modul get_url a špecifikuje adresu URL, z ktorej sa má balík stiahnuť, nasledovaná cieľovým adresárom, do ktorého sa má súbor uložiť. Posledná časť príručky špecifikuje kontrolný súčet md5 na kontrolu platnosti súboru.
POZNÁMKA: Vo vyššie uvedenej príručke sme pevne zakontrolovali kontrolný súčet, môžete však určiť adresu URL, na ktorej je kontrolný súčet hostený.
Po spustení príručky získate výstup označujúci úspech alebo neúspech úloh.
$ ansible-playbook download_mysql_server.yml PLAY [Stiahnutie servera Debian MySQL pomocou HTTP / HTTPS] ************************************** *************************************************** *************************************************** *******************ÚLOHA [Zhromažďovanie faktov] ******************************************* *************************************************** *********************************** ******************************************
ok: [35.222.210.12]
ÚLOHA [Vytvorte adresár mysql-server v / home / user /.miestne] ************************************************* *************************************************** *************************************************** ***********
35.222.210.12: ok = 3 zmenené = 1 nedosiahnuteľný = 0 zlyhal = 0 preskočený = 0 zachránený = 0 ignorovaný = 0
Po dokončení procesu sa môžete prihlásiť do hostiteľa a overiť, či súbor existuje.
Stiahnite si súbory s kontrolným súčtom sha256
Môžete tiež stiahnuť súbory a overiť ich pomocou kontrolného súčtu sha256, ako je uvedené v príklade príručky nižšie:
- hostitelia: všetci- názov: Stiahnite si server Debian MySQL pomocou protokolu HTTP / HTTPS
úlohy:
- name: Vytvorte adresár mysql-server v / home / user /.miestne
spis:
cesta: ~ /.lokálny / mysql-server
štát: adresár
režim: 0777
- názov: ZÍSKAJTE balíčky serverov MySQL
get_url:
url: https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht
cieľ: ~ /.lokálny / mysql-server
režim: 0777
kontrolný súčet: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Ak chcete namiesto pevne zadaného kontrolného súčtu použiť adresu URL, zvážte nasledujúci príklad:
- hostitelia: všetci- názov: Stiahnite si server Debian MySQL pomocou protokolu HTTP / HTTPS
úlohy:
- name: Vytvorte adresár mysql-server v / home / user /.miestne
spis:
cesta: ~ /.lokálny / mysql-server
štát: adresár
režim: 0777
- názov: ZÍSKAJTE balíčky serverov MySQL
get_url:
url: https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht
cieľ: ~ /.lokálny / mysql-server
režim: 0777
kontrolný súčet: sha256: https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht.sha265
Súbory sťahujte s časovým limitom, keď nebudete môcť odpovedať
V niektorých prípadoch môžete mať zadanú adresu URL zdroja, ktorej odpoveď môže trvať dlhšie alebo je nedostupná. Môže to spôsobiť ukončenie pripojenia skôr, ako server odpovie, pretože predvolený časový limit je zvyčajne 10 sekúnd. Ak chcete explicitne určiť hodnotu časového limitu, použite časový limit:
Zvážte nasledujúcu príručku:
- hostitelia: všetci- name: Stiahnite si server Debian MySQL s časovým limitom
úlohy:
- name: Vytvorte adresár mysql-server v / home / user /.miestne
spis:
cesta: ~ /.lokálny / mysql-server
štát: adresár
režim: 0777
- názov: ZÍSKAJTE balíčky serverov MySQL
get_url:
url: https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht
cieľ: ~ /.lokálny / mysql-server
režim: 0777
kontrolný súčet: sha256: https: // súbory na stiahnutie.mysql.com / archive / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.decht.sha265
časový limit: 30
Vyššie uvedená príručka určuje časový limit ako 30 sekúnd. Ak server neodpovie v nastavenom čase, pripojenie sa preruší.
Stiahnite si súbory s autentifikáciou
Ak chcete stiahnuť súbor na server, ktorý vyžaduje autentifikáciu, budete musieť určiť prihlasovacie hodnoty.
Zvážte nasledujúcu príručku:
- hostitelia: všetci- name: Stiahnutie súboru s autentifikáciou
stať sa: áno
get_url:
adresa URL: http: // 102.15.192.120 / zálohy / databáza.decht.gz
cieľ: / zálohy
používateľské meno: užívateľ
heslo: 'pass'
režim: 0777
časový limit: 5
Stiahnite si súbory z cesty k miestnym súborom
Na stiahnutie súboru z cesty k miestnemu súboru môžete použiť schému súboru: // URI, za ktorou nasleduje cesta k súboru.
Zvážte nasledujúcu príručku:
- hostitelia: webové servery- name: Stiahnutie súboru z cesty k miestnemu súboru
stať sa: áno
get_url:
url: file: /// backups / secure / config.decht.gz
cieľ: / dev / null
Stiahnite si súbory FTP
Sťahovanie súborov FTP je veľmi podobné procesu opísanému v predchádzajúcej časti. Všetko, čo musíte urobiť, je určiť ftp: // ako protokol na server.
Ak chcete prevziať zabezpečený súbor, musíte tiež pridať prihlasovacie informácie, ako je to uvedené vyššie.
Zvážte nasledujúcu príručku:
- hostitelia: všetciúlohy:
- name: Stiahnutie súboru zo servera FTP
stať sa: áno
get_url:
url: ftp: // 192.168.11.101
cieľ: / zálohy
režim: 0777
Možné možnosti modulu get_url
Modul get_url tiež podporuje rôzne možnosti, ktoré môžete použiť na určenie a sledovanie sťahovania a správy súborov. Možnosti dostupné v module get_url zahŕňajú:
- Zálohovanie: Možnosť zálohovania, Booleovská hodnota áno a nie, vám umožňuje určiť, či sa má vytvoriť záložná kópia súboru, ktorý sa má stiahnuť.
- Skupina: Voľba skupina určuje skupinu, ktorá vlastní vlastníctvo stiahnutého súboru; táto možnosť je ako príkaz chown v Unixe.
- Hlavičky: Možnosť Hlavičky sa používa na zadanie vlastných hlavičiek HTTP v slovníku vo formáte hash.
- http_agent: Voľba http_agent určuje agenta HTTP.
- Majiteľ: Voľba vlastník určuje vlastníka súborov na stiahnutie.
- Seuser: Možnosť seuser nastaví používateľa v kontexte súboru SELinux.
- použi proxy: Voľba use_proxy nastavuje, či sa má použiť proxy server. Ak je táto možnosť nastavená na hodnotu False, budú všetky servery proxy ignorované, aj keď máte v cieľovom hostiteľovi zadaný jeden server.
Záver
Tento článok podrobne rozoberal modul get_url v aplikácii Ansible a ukázal vám, ako používať tento modul na sťahovanie súborov z rôznych zdrojov. V tomto článku môžete uviesť, ako sťahovať súbory v priečinku Ansible pomocou modulu get_url.