Odgovorno

Kako se koristi modul odgovorne registracije

Kako se koristi modul odgovorne registracije
U programu Ansible možete pokrenuti bilo koju naredbu ljuske na svojim domaćinima Ansible, hostove koje ćete konfigurirati pomoću programa Ansible. Ove naredbe ljuske mogu imati izlaze. Prema zadanim postavkama, izlaz se zanemaruje. Ako želite pohraniti izlaz u varijablu i koristiti ga kasnije, tada možete koristiti Ansible Registar modul. Ovaj će vam članak pokazati kako se koristi Ansible Registar modul za pohranu izlaza naredbe u varijablu i pristupanje kasnije u vašoj knjizi odgovora Ansible.

Preduvjeti

Ako želite isprobati primjere u ovom članku, morate:

1) Neka je Ansible instaliran na računalu.

2) Neka Ubuntu domaćin bude konfiguriran za Ansible automatizaciju.

Na LinuxHintu postoji mnogo članaka posvećenih instaliranju programa Ansible i konfiguriranju hostova za automatizaciju programa Ansible. Ako je potrebno, možete provjeriti ove članke.

Postavljanje direktorija projekata

Prije nego što nastavite dalje, postavite novi direktorij projekta Ansible, samo da stvari budu malo organizirane.

Za stvaranje direktorija projekta registracija-demo / i sve potrebne poddirektorijume (u vašem trenutnom radnom direktoriju), pokrenite sljedeću naredbu:

$ mkdir -pv register-demo / playbooks

Jednom kad se kreira direktorij projekta, prijeđite na direktorij projekta, kako slijedi:

$ cd registracija-demo /

Stvoriti domaćini inventarna datoteka, kako slijedi:

$ nano domaćini

Dodajte IP ili DNS ime vašeg hosta Ubuntu u datoteku inventara (jedan host u retku), kao što je prikazano na snimci zaslona u nastavku.

Evo, dodao sam svoj Ubuntu 20.04 LTS domaćin vm3.nodekite.com u ubuntu20 skupina.

Nakon što završite, datoteku spremite pritiskom na + x, nakon čega slijedi Y i .

Stvorite konfiguracijsku datoteku Ansible ansible.usp u vašem direktoriju projekta, kako slijedi:

$ nano ansible.usp

Zatim unesite sljedeće retke u ansible.usp datoteka:

[zadane postavke]
inventar = domaćini
host_key_checking = Netačno

Nakon što završite, spremite ansible.usp datoteku pritiskom na + x, nakon čega slijedi Y i .

Sada pokušajte pingati vaš Ubuntu domaćin, kako slijedi:

$ ansible ubuntu20 -u ansible -m ping

Kao što vidite, moj Ubuntu 20.04 domaćin vm3.nodekite.com je dostupan.

Primjer 1: Osnove

U ovom primjeru pokazat ću vam neke od osnova Ansiblea Registar modul. Koristit ću Ansible za generiranje slučajne lozinke u mom Ubuntu 20.04 domaćin koristeći pwgen naredbu, pohranite lozinku u varijablu pomoću Registar modul i ispišite lozinku na zaslon.

Prvo izradite novu knjigu pjesama generiraj_prolaz.yaml u igraonice / direktorij, kako slijedi:

$ nano knjige / play_pass.yaml

Utipkajte sljedeće retke u generiraj_prolaz.yaml datoteka:

- domaćini: ubuntu20
korisnik: ansible
postati: Istina
zadaci:
- ime: Provjerite je li instaliran pwgen
prikladan:
naziv: pwgen
stanje: prisutno
update_cache: Tačno
- ime: Generiraj lozinku
ljuska: pwgen -N 1 -s 30
registar: mypass
- ime: Ispis generirane lozinke
otklanjanje pogrešaka:
msg: "Lozinka je mypass"

Kada završite, pritisnite + x, nakon čega slijedi Y i , spasiti generiraj_prolaz.yaml datoteka.

Sljedeći redak govori Ansibleu da pokrene knjigu s igrama generiraj_prolaz.yaml na svakom domaćinu u ubuntu20 skupina. U mom slučaju, igrana knjiga će se pokretati na hostu vm3.nodekite.com.

U ovoj priručniku definirat ću tri zadatka.

Prvi zadatak osigurat će da pwgen paket je instaliran.

Drugi će zadatak generirati slučajnu lozinku od 30 znakova pomoću pwgen naredba. Ja ću koristiti Registar modul za pohranu generirane lozinke u mypass varijabilna.

Treći zadatak ispisat će mypass varijabla pomoću Ansible otklanjanje pogrešaka modul.

Pokrenite knjigu s igrama generiraj_prolaz.yaml koristeći sljedeću naredbu:

$ ansible-playbook playbooks / generiraj_prolaz.yaml

Kao što vidite, priručnik se uspješno izvodio. Također je generirana lozinka.

Ali, zašto varijabla mypass ispisati toliko predmeta?

Pa, varijabla mypass je objekt koji sadrži neka važna svojstva.

Najvažnija svojstva svakog od Registar varijable su kako slijedi:

cmd - Naredba koja se pokrenula za generiranje rezultata.

stdout - Izlaz naredbe.

stderr - Izlaz pogreške naredbe.

početak - Datum i vrijeme kada je zapovijed započela izvršenje.

kraj - Datum i vrijeme kada je naredba završila s izvršavanjem.

delta - Vrijeme potrebno za pokretanje naredbe. To je razlika između kraj i početak Svojstva.

stdout_lines - Niz koji sadrži svaki izlazni redak naredbe. Isto kao stdout, ali stdout razdvaja linije pomoću znakova za novi redak (\ n) umjesto nizova.

stderr_lines -  Niz koji sadrži svaku liniju izlaza pogreške naredbe. Isto kao stderr, ali stderr razdvaja linije pomoću znakova za nove redove (\ n) umjesto nizova.

Ako samo želite ispisati / pristupiti nizu lozinke (što je vrlo vjerojatno), možete ispisati / pristupiti stdout vlasništvo mypass varijabla u vašoj knjizi pjesama, kao što je označeno na snimci zaslona u nastavku.

$ nano playbooks / generiraj_prolaz.yaml

Kad završite, pokrenite knjigu s igrama generiraj_prolaz.yaml opet. Ispisat će se samo niz lozinke, kao što možete vidjeti na snimci zaslona u nastavku.

To pokriva osnove Ansiblea Registar modul.

Primjer 2: Sadržaj direktorija trgovine

U ovom primjeru pokazat ću vam kako pohraniti sadržaj direktorija u varijablu koristeći Ansible Registar modul, kao i kako ih prevrtati.

Prvo izradite novu knjigu pjesama get_dir_contents.yaml u igraonice / imenik.

$ nano playbooks / get_dir_contents.yaml

Zatim unesite sljedeće retke u get_dir_contents.yaml knjiga s igrama:

- domaćini: ubuntu20
korisnik: ansible
postati: Istina
zadaci:
- ime: Popis svih datoteka i direktorija u / home / ansible
ljuska: ls / home / ansible
registar: dir_contents
- ime: Ispis sadržaja direktorija pomoću petlji
otklanjanje pogrešaka:
msg: "item"
petlja: "dir_contents.stdout_lines "

Kada završite, pritisnite + x, nakon čega slijedi Y i , spasiti generiraj_prolaz.yaml datoteka.

U ovoj priručniku definirat ću dva zadatka.

Prvi zadatak navodi sav sadržaj datoteke / home / ansible direktorij i pohranjuje ih u dir_contents varijabilna.

Drugi zadatak ispisuje dir_contents varijabilna.

Pokrenite get_dir_contents.yaml playbook, kako slijedi.

$ ansible-playbook playbooks / get_dir_contents.yaml

Kao što vidite, stdout_lines svojstvo je pohranilo sadržaj direktorija kao niz. The stdout svojstvo se također pohranjuje u sadržaj direktorija. Ta su svojstva odvojena znakovima novog reda (\ n). U ovom primjeru, stdout_lines s imovinom je lako raditi.

Dalje, pređite preko sadržaja direktorija pomoću petlje.

Da biste to učinili, otvorite get_dir_contents.yaml playbook i promijenite drugi zadatak, kao što je označeno na snimci zaslona u nastavku.

$ nano playbooks / get_dir_contents.yaml

Evo, ponavljam preko dir_contents.stdout_lines niz pomoću petlje i ispis stavki niza pomoću Ansible otklanjanje pogrešaka modul. U ovom zadatku, artikal varijabla je varijabla petlje koja se koristi za itiranje preko elemenata niza.

Pokrenite get_dir_contents.yaml playbook, kako slijedi:

$ ansible-playbook playbooks / get_dir_contents.yaml

Kao što vidite, sadržaj datoteke / home / ansible direktorij ispisuju se na ekranu.

Primjer 3: Izrada sigurnosne kopije direktorija

U ovom primjeru pokazat ću vam kako napraviti sigurnosnu kopiju direktorija pomoću Ansiblea Registar, datoteka, i kopirati modula.

Prvo izradite novu knjigu pjesama backup_home_dir.yaml u igraonice / direktorij, kako slijedi:

$ nano playbooks / backup_home_dir.yaml

Zatim unesite sljedeće retke u backup_home_dir.yaml datoteka.

- domaćini: ubuntu20
korisnik: ansible
postati: Istina
zadaci:
- ime: Nabavite sadržaj kućnog direktorija / kuće / odgovora
ljuska: ls / home / ansible
registar: dir_contents
- ime: Stvorite novi direktorij / tmp / ansible
datoteka:
putanja: / tmp / ansible
stanje: direktorij
- ime: Sigurnosna kopija kućnog direktorija / home / ansible na / tmp / ansible
kopirati:
src: / home / ansible / item
dest: / tmp / ansible /
remote_src: Tačno
petlja: "dir_contents.stdout_lines

Kada završite, pritisnite + x, nakon čega slijedi Y i , spasiti backup_home_dir.yaml datoteka.

U ovoj priručniku definirat ću tri zadatka.

Prvi zadatak sprema sadržaj datoteke / home / ansible direktorij (direktorij koji ću sigurnosno kopirati) u dir_contents varijabla pomoću Ansible Registar modul.

Drugi zadatak stvara novi direktorij / tmp / ansible koristeći Ansible datoteka modul. Ovo je direktorij u kojem će biti pohranjena sigurnosna kopija.

Treći zadatak petlja kroz dir_contents.stdout_lines niz i koristi Ansible kopirati modul za kopiranje svakog direktorija u / tmp / ansible / imenik.

Pokrenite backup_home_dir.yaml playbook, kako slijedi:

$ ansible-playbook playbooks / backup_home_dir.yaml

Kao što vidite, na mom Ubuntu 20.04 LTS domaćina, sigurnosna kopija bila je uspješna.

Primjer 4: Pokreni ili preskoči zadatke

U ovom primjeru pokazat ću vam kako pokretati ili preskakati zadatke, ovisno o varijabli koju ste registrirali, pomoću Registar modul.

Prvo izradite novu knjigu pjesama uvjeti_registra.yaml u igraonice / direktorij kako slijedi:

$ nano playbooks / register_conditions.yaml

Zatim unesite sljedeće retke u uvjeti_registara.yaml datoteka.

- domaćini: ubuntu20
korisnik: ansible
postati: Istina
zadaci:
- ime: Popis sadržaja direktorija
ljuska: ls / home / ansible / test3
registar: dir_contents
- ime: Provjerite je li direktorij prazan
otklanjanje pogrešaka:
msg: "Direktorij je prazan."
kada: dir_contents.stdout == ""

Kada završite, pritisnite + x, nakon čega slijedi Y i , spasiti uvjeti_registara.yaml datoteka.

U ovoj knjizi priručnika definirao sam dva zadatka.

Prvi zadatak sprema sadržaj datoteke / home / ansible / test3 direktorij u dir_contents varijabilna.

Drugi zadatak provjerava je li dir_contents.stdout je prazan niz ili je li direktorij / home / ansible / test3 prazno je. Ako je direktorij prazan, poruka Imenik je prazan ispisat će.

Pokrenite uvjeti_registra.yaml playbook, kako slijedi:

$ ansible-playbook playbooks / register_conditions.yaml

Kao što vidite, priručnik se uspješno izvodio.

Budući da je direktorij / home / ansible / test3 je prazno, knjiga za reprodukciju ispisala je poruku Imenik je prazan.

Zatim stvorite novu datoteku u / home / ansible / test3 imenik.

$ touch test3 / myfile

Budući da je / home / ansible / test3 direktorij više nije prazan, zadatak Provjerite je li direktorij prazan preskače se, kao što možete vidjeti na donjoj snimci zaslona.

$ ansible-playbook playbooks / register_conditions.yaml

Zaključak

Odgovoran Registar modul je vrlo koristan za automatizaciju poslužitelja. Ovaj vam je članak pokazao osnove Registar modul, uključujući primjere korištenja Ansible Registar modul za pohranu i sigurnosno kopiranje direktorija te za izvršavanje zadataka direktorija.

Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...