V prejšnji članek te serije Ansible, smo razložili, da je Ansible orodje brez agentov, ki vam omogoča hitro in učinkovito upravljanje več strojev (znanih tudi kot vozlišča - in na njih izvajajo tudi uvajanje) iz enega samega sistem.
Po namestitvi programske opreme v krmilni stroj ustvarite datoteko ključi za prijavo brez gesla in jih kopirate v vozlišča, čas je, da se naučite optimizirati proces upravljanja takšnih oddaljenih sistemov z uporabo Odgovorno.
V tem in v naslednjem članku bomo uporabljali naslednje preskusno okolje. Vsi gostitelji so CentOS 7 škatle:
Krmilni stroj (kjer je nameščen Ansible): 192.168.0.19 Vozlišče 1: 192.168.0.29 Vozlišče 2: 192.168.0.30
Poleg tega upoštevajte, da sta bili obe vozlišči dodani v lokalnem razdelku o spletnih strežnikih /etc/ansible/hosts mapa:
Vendar pa začnimo z obravnavano temo.
Kot je opisano v prejšnjem priročniku, lahko uporabite
ansible pripomoček za izvajanje ukazov v oddaljenih vozliščih:# ansible -a "/bin/hostnamectl --static" spletni strežniki.
V zgornjem primeru smo tekli hostnamectl --static
naprej vozlišče1 in vozlišče2. Ne traja dolgo, da se človek zaveda, da se ta način izvajanja nalog na oddaljenih računalnikih dobro obnese za kratke ukaze, lahko pa hitro postanejo obremenjujoči ali neredni za zahtevnejša opravila, ki zahtevajo nadaljnje dobro strukturirane konfiguracijske parametre ali interakcije z drugimi storitve
Na primer nastavitev in konfiguriranje WordPress na več gostiteljih - o tem bomo govorili v naslednjem članku te serije). Tukaj je Knjige o igrah stopite na sceno.
Enostavno povedano, Knjige o igrah so datoteke z navadnim besedilom, zapisane v YAML oblikujejo in vsebujejo seznam z elementi z enim ali več pari ključ/vrednost (znan tudi kot »hash"Ali"slovar”).
Znotraj vsakega Zbirke knjig boste našli eno ali več skupin gostiteljev (vsaka od teh skupin se imenuje tudi a igranje), kjer je treba izvesti želene naloge.
Primer iz uradnih dokumentov nam bo pomagal ponazoriti:
1.gostitelji: to je seznam strojev (v skladu s /etc/ansible/hosts), kjer bodo izvedene naslednje naloge.
2.remote_user: oddaljeni račun, ki bo uporabljen za izvajanje nalog.
3.vars: spremenljivke, ki se uporabljajo za spreminjanje obnašanja oddaljenih sistemov.
4. opravila se izvajajo zaporedoma, ena za drugo, na vseh strojih, ki se ujemajo z gostitelji. V predstavi bodo vsi gostitelji dobili enake direktive o opravilih.
Če morate za določeno gostitelko izvesti drugačen nabor povezanih opravil, ustvarite drugo predvajanje v trenutnem Knjiga z igrami (z drugimi besedami, namen igre je preslikati določen izbor gostiteljev na natančno določena opravila).
V tem primeru začnite novo igro tako, da na dnu dodate direktivo hosts in začnete znova:
- gostitelji: spletni strežniki oddaljeni_porabnik: korenski spremenljivki: spremenljivka1: vrednost1 spremenljivka2: vrednost2 oddaljeni_uporabnik: korenska opravila: - ime: opis za opravilo1 naloga1: parameter1 = vrednost_za_parameter1 parameter2 = vrednost_za_parameter2 - ime: opis za nalogo1 naloga2: parameter1 = vrednost_za_parameter1 parameter2 = vrednost_za_parameter2 upravljavcev: - ime: opis storitve za upravljavec 1: ime = ime_stanja_stanje = storitveno_stanje. - gostitelji: dbservers remote_user: root vars: spremenljivka1: vrednost1 spremenljivka2: vrednost2. …
5. rokovalniki so dejanja, ki se sprožijo na koncu razdelka opravil v vsakem predvajanju in se večinoma uporabljajo za ponovni zagon storitev ali sprožitev ponovnega zagona v oddaljenih sistemih.
# mkdir/etc/ansible/playbooks.
In datoteko z imenom apache.yml znotraj z naslednjo vsebino:
- gostitelji: spletni strežniki različni: http_port: 80 max_clients: 200 remote_user: root opravila: - ime: zagotovite, da je apache v najnovejši različici yum: pkg = httpd stanje = najnovejše - ime: zamenjajte privzeto datoteko index.html: src =/static_files/index.html dest =/var/www/html/mode = 0644 notify: - znova zaženite apache - ime: zagotovite, da je apache zagnan (in ga omogočite ob zagonu) storitev: name = httpd state = started enabled = yes handlers: - name: znova zaženite storitev apache: name = httpd stanje = znova zagnano.
Drugič, ustvarite imenik /static_files:
# mkdir /static_files.
kjer boste shranili meri index.html mapa:
Apache je bil v tem gostitelju zagnan prek Ansibleja
Prinaša vam Tecmint.com
Kljub temu je zdaj čas, da uporabite to knjigo za izvajanje prej omenjenih nalog. Opazili boste, da bo Ansible pregledoval vsako nalogo gostitelja, eno za drugo, in poročal o stanju teh nalog:
# ansible-playbook /etc/ansible/playbooks/apache.yml.
Zdaj pa poglejmo, kaj se zgodi, ko odpremo brskalnik in ga pokažemo 192.168.0.29 in 192.168.0.30:
Pojdimo še korak dlje in ročno ustavimo in onemogočimo Apache vozlišče1 in vozlišče2:
# systemctl ustavi httpd. # systemctl onemogoči httpd. # systemctl je aktiven httpd. # systemctl je omogočen httpd.
Potem spet teči,
# ansible-playbook /etc/ansible/playbooks/apache.yml.
Tokrat opravilo poroča, da se je spletni strežnik Apache zagnal in omogočil na vsakem gostitelju:
Zgornji primer upoštevajte kot pogled na moč Ansibleja. Čeprav so to razmeroma enostavne naloge, če jih izvajate na majhnem številu strežnikov, lahko postane zelo dolgočasno in dolgotrajno, če morate isto narediti na več (morda na stotine) strojev.
V tem članku smo opisali, kako izvajati ukaze in izvajati kompleksna opravila na več oddaljenih gostiteljih hkrati z uporabo Ansible. The uradna dokumentacija in Skladišče GitHub podajte veliko primerov in navodil, kako uporabiti Ansible za dosego skoraj vseh možnih nalog.
Ko se začnete učiti, kako avtomatizirajte opravila na oddaljenih gostiteljih Linux z uporabo Ansible bi radi slišali vaše misli. Vprašanja, komentarji in predlogi so prav tako dobrodošli, zato nas kadar koli kontaktirajte s spodnjim obrazcem.