Kao korisnik Linuxa vjerojatno ste upoznati s alatima koji vam omogućuju preuzimanje datoteka s udaljenih poslužitelja pomoću HTTP, HTTPS i FTP protokola, kao što su wget i cURL. Tijekom izvođenja zadataka automatizacije, povremeno ćete trebati preuzeti datoteke i pakete na udaljene hostove. Iako za izvršavanje ove funkcije možete koristiti wget i cURL na udaljenim hostovima, također možete zaobići potrebnu instalaciju da biste koristili ove alate pomoću modula Ansible get_url.
Ovaj vam vodič pokazuje kako koristiti naredbu Ansible get_url za preuzimanje datoteka s udaljenih poslužitelja.
Prije nego započnemo, naredba Ansible get_url zahtijeva sljedeće preduvjete:
- Udaljeni poslužitelj s kojeg se datoteke trebaju preuzeti trebaju imati izravan pristup poslužitelju domaćina.
- Host poslužitelj trebao bi podržavati i HTTP i HTTPS protokole.
O modulu get_url
Prije nego što naučite kako implementirati modul get_url, prvo postoji nekoliko stvari koje vrijedi razumjeti u vezi s ovim modulom. Modul get_url podržava sljedeće značajke:
- Preuzimanje i provjera kontrolne sume s poslužitelja
- HTTP, HTTPS i FTP poslužitelji
- Proxy poslužitelji, koje može odrediti
_proxy direktiva - Postavljanje vremenskog ograničenja za primanje zahtjeva
- Puzanje weba
- Osnovna autorizacija na webu
Zatim ćemo vam pokazati kako koristiti modul get_url za preuzimanje datoteka s različitim protokolima i konfiguracijama.
Korištenje modula get_url za dobivanje datoteka
Slijedi nekoliko primjera koje možete implementirati pomoću modula get_url prilikom preuzimanja datoteka s udaljenog poslužitelja.
Preuzmite datoteke s HTTP / HTTPS poslužitelja s izravnim URL-om
Razmotrite sljedeću knjigu priručnika koja stvara direktorij u ~ /.local i koristi modul get_url za preuzimanje Debian MySQL paketa.
BILJEŠKA: Pakete MYSQL poslužitelja možete pronaći u dolje navedenom resursu:
https: // linkfy.u / mysql-pakete
- domaćini: svi- ime: Preuzmite Debian MySQL poslužitelj koristeći HTTP / HTTPS
zadaci:
- ime: Napravite direktorij mysql-server u / home / user /.lokalno
datoteka:
put: ~ /.lokalni / mysql-poslužitelj
stanje: direktorij
način rada: 0777
- ime: GET MySQL-poslužiteljski paketi
get_url:
url: “https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran"
dest: ~ /.lokalni / mysql-poslužitelj
način rada: 0777
kontrolna suma: md5: 5568e206a187a3b658392520540f556e
Gornja knjiga priručnika započinje stvaranjem direktorija u $ HOME /.lokalni / mysql-poslužitelj, na kojem treba preuzeti pohranjeni paket. Ako kreirate direktorij u privilegiranom direktoriju, ne zaboravite upotrijebiti direktivu 'postati'.
Dalje, knjiga priručnika poziva modul get_url i navodi URL s kojeg će se preuzeti paket, nakon čega slijedi odredišni direktorij u koji će se datoteka pohraniti. Završni odjeljak priručnika navodi md5 kontrolnu sumu za provjeru valjanosti datoteke.
BILJEŠKA: U gornjoj knjizi priručnika čvrsto smo kodirali kontrolnu sumu, ali možete odrediti URL na kojem se nalazi kontrolna suma.
Nakon pokretanja knjige priručnika dobit ćete izlaz koji pokazuje uspjeh ili neuspjeh zadataka.
$ ansible-playbook download_mysql_server.yml PLAY [Preuzmi Debian MySQL poslužitelj koristeći HTTP / HTTPS] ************************************** **************************************************** **************************************************** ******************ZADATAK [Prikupljanje činjenica] *********************************************** **************************************************** **************************************************** *****************************************
u redu: [35.222.210.12]
ZADATAK [Napravite direktorij mysql-server u / home / user /.lokalni] ************************************************** **************************************************** **************************************************** ***********
35.222.210.12: ok = 3 promijenjeno = 1 nedostižno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 zanemareno = 0
Nakon što je postupak završen, možete se prijaviti na host i provjeriti postoji li datoteka.
Preuzmite datoteke s kontrolnom sumom sha256
Također možete preuzeti datoteke i provjeriti ih pomoću kontrolne sume sha256, kao što je prikazano u primjeru priručnika u nastavku:
- domaćini: svi- ime: Preuzmite Debian MySQL poslužitelj koristeći HTTP / HTTPS
zadaci:
- ime: Napravite direktorij mysql-server u / home / user /.lokalno
datoteka:
put: ~ /.lokalni / mysql-poslužitelj
stanje: direktorij
način rada: 0777
- naziv: GET MySQL-poslužiteljski paketi
get_url:
url: https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran
dest: ~ /.lokalni / mysql-poslužitelj
način rada: 0777
kontrolna suma: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Da biste koristili URL umjesto tvrdog kodiranja kontrolne sume, razmotrite sljedeći primjer:
- domaćini: svi- ime: Preuzmite Debian MySQL poslužitelj koristeći HTTP / HTTPS
zadaci:
- ime: Napravite direktorij mysql-server u / home / user /.lokalno
datoteka:
put: ~ /.lokalni / mysql-poslužitelj
stanje: direktorij
način rada: 0777
- ime: GET MySQL-poslužiteljski paketi
get_url:
url: https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran
dest: ~ /.lokalni / mysql-poslužitelj
način rada: 0777
kontrolna suma: sha256: https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran.sha265
Preuzmite datoteke s vremenskim ograničenjem ako niste odgovorili
U nekim slučajevima možda imate navedeni URL resursa na koji može trebati više vremena da odgovori ili je nedostupan. To može dovesti do zatvaranja veze prije nego što poslužitelj odgovori, jer je zadano vremensko ograničenje obično 10 sekundi. Da biste eksplicitno odredili vrijednost vremenskog ograničenja, upotrijebite vremensko ograničenje:
Razmotrite sljedeću knjigu priručnika:
- domaćini: svi- ime: Preuzmite Debian MySQL poslužitelj s vremenskim ograničenjem
zadaci:
- ime: Napravite direktorij mysql-server u / home / user /.lokalno
datoteka:
put: ~ /.lokalni / mysql-poslužitelj
stanje: direktorij
način rada: 0777
- ime: GET MySQL-poslužiteljski paketi
get_url:
url: https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran
dest: ~ /.lokalni / mysql-poslužitelj
način rada: 0777
kontrolna suma: sha256: https: // preuzimanja.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-snop.katran.sha265
timeout: 30
Gornja knjiga priručnika navodi vremensko ograničenje na 30 sekundi i veza će se prekinuti ako poslužitelj ne odgovori u zadanom vremenu.
Preuzmite datoteke s autentifikacijom
Da biste datoteku preuzeli na poslužitelj koji zahtijeva provjeru autentičnosti, morat ćete navesti vrijednosti za prijavu.
Razmotrite sljedeću knjigu priručnika:
- domaćini: svi- ime: Preuzmi datoteku s autentifikacijom
postati: da
get_url:
url: http: // 102.15.192.120 / sigurnosne kopije / baza podataka.katran.gz
dest: / sigurnosne kopije
korisničko ime: korisnik
lozinka: 'pass'
način rada: 0777
vremensko ograničenje: 5
Preuzmite datoteke s lokalnog puta datoteke
Da biste datoteku preuzeli s lokalne staze datoteke, možete upotrijebiti shemu file: // URI, a zatim stazu do datoteke.
Razmotrite sljedeću knjigu priručnika:
- domaćini: web poslužitelji- ime: Preuzmite datoteku s lokalne staze datoteke
postati: da
get_url:
url: file: /// sigurnosne kopije / sigurno / konfiguracija.katran.gz
dest: / dev / null
Preuzmite FTP datoteke
Preuzimanje FTP datoteka vrlo je slično procesu opisanom u prethodnom odjeljku. Sve što trebate je odrediti ftp: // kao protokol poslužitelju.
Da biste preuzeli sigurnu datoteku, morate dodati i podatke za prijavu, kao što je prethodno prikazano.
Razmotrite sljedeću knjigu priručnika:
- domaćini: svizadaci:
- ime: Preuzmite datoteku s FTP poslužitelja
postati: da
get_url:
url: ftp: // 192.168.11.101
dest: / sigurnosne kopije
način rada: 0777
Odgovorne opcije modula get_url
Modul get_url također podržava razne opcije pomoću kojih možete odrediti i nadzirati preuzimanje i upravljanje datotekama. Opcije dostupne s modulom get_url uključuju sljedeće:
- Sigurnosna kopija: Opcija sigurnosne kopije, logička vrijednost da i ne, omogućuje vam da odredite hoćete li stvoriti sigurnosnu kopiju datoteke za preuzimanje.
- Skupina: Opcija grupe navodi grupu koja je vlasnica preuzete datoteke; ova je opcija poput naredbe chown u Unixu.
- Zaglavlja: Opcija zaglavlja koristi se za određivanje prilagođenih HTTP zaglavlja u rječniku u hash formatu.
- http_agent: Opcija http_agent navodi HTTP agenta.
- Vlasnik: Opcija vlasnika navodi vlasnika datoteka za preuzimanje.
- Seuser: Opcija korisnika koristi korisnika u kontekstu datoteke SELinux.
- use_proxy: Opcija use_proxy postavlja hoće li se koristiti proxy. Ako je ova opcija postavljena na false, svi će se proxyji zanemariti, čak i ako imate navedenog u ciljnom hostu.
Zaključak
Ovaj je članak detaljno raspravljao o modulu get_url u programu Ansible i pokazao vam kako ga koristiti za preuzimanje datoteka iz različitih izvora. U ovom se članku možete uputiti kako preuzeti datoteke u programu Ansible pomoću modula get_url.