Lees meer oor Ansible Playbook om die take te outomatiseer.
Voorheen het ons 'n goeie inleiding, installasiegids bespreek en daarna praat ons oor Playbook en die boustene daarvan.
1 Wat is 'n antwoordboek??
2 Playbook Taal
3 Die basiese beginsels van die antwoordboek
3.1 Gashere en gebruikers
4 Skep en voer u eerste antwoordboek uit
Wat is 'n antwoordboek??
Die speelboek is 'n taal vir antwoorde op automatisering. Dit is 'n eenvoudige lêer met 'n stel instruksies. Dit is in speelboeke waar ons definieer wat ons wil hê Ansible moet doen. Playbooks bevat toneelstukke wat take verrig, en hierdie take bevat modules. Hul take word opeenvolgend uitgevoer.
Dit kan byvoorbeeld so eenvoudig wees as om 'n reeks opdragte op verskillende bedieners in 'n volgorde uit te voer en die bedieners weer in volgorde te herbegin. Of dit kan net so ingewikkeld wees soos om honderde VM's in 'n openbare en private wolk te ontplooi en te voorsien, insluitend hul vragbalansering, monitering, netwerkopstellings.
Speelboeke is eenvoudige lêers wat in die YAML-kode geskryf is.
YAML is 'n dataserialiseringstaal. Dit is menslik en masjienleesbaar. U benodig geen spesiale koderingsvaardighede om YAML-kodes te skryf nie. U kan aan die dataserialiseringstaal dink as 'n vertaler om al u datastruktuur af te breek en dit te serialiseer in 'n volgorde wat weer gekonstrueer kan word vir latere gebruik. U kan hierdie gerekonstrueerde datastruktuur in dieselfde omgewing of selfs in 'n ander omgewing gebruik.
Hieronder is 'n voorbeeld van 'n YAML-lêer om mysql te installeer:
aksie: $ ansible_pkg_mgr pkg = mysql-server-staat = geïnstalleer
– naam: Voeg Python MySQL DB by
aksie: $ ansible_pkg_mgr pkg = python-mysqldb state = geïnstalleer
Die basiese beginsels van die antwoordboek
Hierdie deel van die artikel dek die basiese konsepte vir die verstaanbare begrip Ansible Playbook.
Gashere en gebruikers
Teikenmasjiene vir antwoorde wat nodig is, moet in die infrastruktuur waarop toneelstukke gebruik moet word, van Ansible-speelboek gebruik word. Gashere word deur hul IP-adresse by Ansible-voorraad gevoeg. Die leërskare is 'n lys van een of meer groepe of gasheerpatrone wat deur 'n kolon geskei word. Die afstandgebruiker bevat die naam van die gebruikersrekening.
– gashere: ProdServers
Met veranderlikes kan u verander hoe 'n speelboek werk. Dit kan byna oral in die speelboek gebruik word en kan oorgeërf word van 'n inventaris, wat eksplisiet gestel is aan die looptyd, wat ontdek is aan die begin van 'n afspeelboek. U kan 'n veranderlike naam definieer met behulp van letters, syfers en onderstreep, maar dit moet slegs met 'n letter begin.
Byvoorbeeld, port_01 is 'n geldige veranderlike, terwyl 01_post 'n ongeldige veranderlike is. Hier is 'n voorbeeld van veranderlikes in 'n Ansible Playbook:
Om 'n speelboek te bestuur, benodig u 'n lys teikens waarop outomatisering moet geskied. Dit is wat 'n inventaris doen. Inventarislyste kan op verskillende maniere gebou en geberg word, insluitend statiese lêers, d.w.s. Ansible Hosts. Of dit kan dinamies gegenereer word via 'n voorraadskrip wat 'n lys van leërskare vir 'n eksterne bron sal trek.
U kan ook 'n veranderlike spesifiseer as deel van 'n inventarislys. Voorraad is uiteindelik 'n lys van dinge waaroor u wil outomatiseer.
Speel in verantwoordelike speelboek-uitvoeringstake. Die taak is verantwoordelik vir die bestuur van verantwoordelike modules. Op een slag kan slegs een taak uitgevoer word en take word in volgorde uitgevoer. Hul take is geskryf in YAML, wat amper Engels soos taal is.
Vir voorbeelde: installeer pakketnaam, werk sagteware naam op, ens. Hieronder is 'n voorbeeld van 'n taak in Ansible playbook om httpd te installeer:
– naam: Installeer httpd-pakket
yum: naam = httpd staat = nuutste
Hanteerders is 'n spesiale soort take.
Dit kan deur 'n taak veroorsaak word en word een keer aan die einde van die toneelstuk uitgevoer. Dit word gebruik om kennisgewings te stuur as daar 'n verandering in die konfigurasielêer is, byvoorbeeld, stel die diens in kennis om apache te begin sodra dit geïnstalleer is. Sintaksis "kennisgewing" word gebruik om hanteerders te skakel. Hieronder is 'n voorbeeld van 'n hanteerder om apache weer te begin:
– gashere: almal
– naam: maak seker dat apache by die nuutste weergawe is
in kennis stel:
– herbegin apache
– naam: maak seker dat apache loop (en aktiveer dit tydens selflaai)
diens: naam = httpd-staat = begin geaktiveer = ja
– naam: herlaai apache
diens: naam = httpd-staat = herbegin
Skep en voer u eerste antwoordboek uit
Laat ek jou vertel hoe om 'n speelboek te skryf. Elke speelboek begin met drie streepies (-) aan die bokant.
Die eerste ding wat u in 'n Ansible Playbook noem, is die gasheermasjiene waarop u die playbook wil bedryf.
Dan kan u veranderlikes noem deur feite in te samel; dan kan u die verskillende take noem wat u wil uitvoer. Onthou nou dat die taak uitgevoer word in dieselfde volgorde as wat u dit skryf. Byvoorbeeld, u wil eers sagteware A installeer en daarna sagteware B, maak seker dat die eerste taak wat in die speelboek geskryf word, is om sagteware A te installeer en dat die volgende taak sagteware B kan installeer.
Dan het u hanteerders aan die onderkant. Die hanteerders is ook take, maar die verskil is om hanteerders uit te voer, u het 'n soort snellers nodig in die lys van take om hanteerders uit te voer.
Laat ek jou wys hoe om 'n verantwoordelike speelboek te skep om nginx op 'n gasheer te installeer en te begin en dit te begin.
Skep 'n .yml-lêer waar u u YAML-kodes sal plaas vir die maak van 'n verantwoordelike speelboek.
Plaas die onderstaande YAML-kode in hierdie lêer en stoor die lêer.
– gashere: kliënt
– bediener_port: 8080
– naam: Installeer nginx-webbediener
apt: pkg = nginx-staat = geïnstalleer update_cache = waar
– begin met nginx
– naam: begin nginx
diens: naam = nginx-staat = begin
Bogenoemde YAML-lêer begin met leërskare, ek wil hierdie speelboek op die klientmasjien (kliënt) uitvoer. Die IP-adres van die kliënt is reeds in die lêer / etc / ansible / hosts gestoor.
Die volgende reël laat die take toe met sudo-voorregte.
Toe definieer ek server_port as 'n veranderlike in hierdie speelboek.
Dan kom my eerste taak in hierdie verantwoordelike speelboek om 'n Nginx-webbediener te installeer. Hierdie taak het ook kennisgewingsparameters, wat na hierdie taak 'n hanteerder met loop beteken.
Uiteindelik het ek 'n hanteerder geskryf om nginx op die kliëntmasjien te begin.
Noudat u duidelik is met die YAML-kodes in die verantwoordelike speelboek, laat ons die speelboek bestuur. Hieronder is die sintaksis vir die bestuur van 'n verantwoordelike speelboek:
Nou sal ek die verantwoordelike speelboek, wat ek maak, installeer om nginx te installeer.
SPEEL [Kliënt] *********************************************** ********************
OPDRAG [Versamel feite] ********************************************** ************
TAAK [Installeer nginx-webbediener] ******************************************** ****
SPEEL RECAP ************************************************* *********************
node1: ok = 3 verander = 1 onbereikbaar = 0 misluk = 0 oorgeslaan = 0 gered = 0 geïgnoreer = 0
Voer die opdrag hieronder uit om te kyk of die nginx-bediener geïnstalleer is en korrek deur die verantwoordelike speelboek begin is.
wortel 3021 0,0 0,0 77676 1516? Ss 15:27 0:00 nginx: meesterproses / usr / sbin / nginx -g daemon aan; meesterproses aan;
Dit het gehandel oor Ansible-speelboek. Ek hoop dat hierdie artikel u gehelp het om te leer hoe u 'n Ansible-speelboek kan skep en bestuur. Kyk hierna Kursus, as u gevorderde onderwerpe in Ansible wil leer, insluitend rolle, Jinja2, opkyk, filter, aangepaste modules.