Ansible juhendaja - õppige kirjutama Ansible Playbooks



Selles Ansible Tutoriali ajaveebis saate teada, kuidas kirjutada Ansiblei mänguraamatuid, adhoc-käske ja teha Nginxi juurutamiseks oma hostimasinas praktilisi toiminguid.

Ansible juhendaja

Loodan, et külastasite õppimiseks minu eelmist ajaveebi ja Ansible'i kõige sagedamini kasutatavad terminoloogiad. Kui te pole seda teinud, kontrollige seda, et saaksite sellest Ansible juhendajast paremini aru.Samuti peaksite teadma, et Ansible moodustab olulise osa konfiguratsioonihalduse, juurutamise ja orkestreerimise tööriistana.

Lubage mul anda teile ülevaade sellest „Ansible Tutorialist”:





Võimalik mänguraamatu õpetus | DevOpsi koolitus Edureka

Ansible juhendaja - Ansible Playbooks'i kirjutamine

Ansible'i raamatud on kirjutatud YAML-vormingus. See on inimesele loetav andmete jadastamise keel. Seda kasutatakse tavaliselt konfiguratsioonifailide jaoks. Seda saab kasutada ka paljudes rakendustes, kus andmeid hoitakse.



Ansible'i jaoks algab peaaegu iga YAML-fail loendiga. Iga loendis olev üksus on loend võtme / väärtuse paaridest, mida tavaliselt nimetatakse räsi või sõnastikuks. Seega peame teadma, kuidas YAML-is loendeid ja sõnastikke kirjutada.

Kõik loendi liikmed on read, mis algavad samal taande tasemel ja algavad tähega “-” (kriips ja tühik). Võimalikud on keerukamad andmestruktuurid, näiteks sõnastike loendid või segasõnastikud, mille väärtused on loendid või nende mõlema segu.

nt. Edureka osakondade loetelu:



osakonnad: - turundus - müük - lahendused - sisukirjutamine - tugi - toode

Lubage mul nüüd tuua sõnastiku näide:

-USA-mandriosa: Põhja-Ameerika pealinn: Washington DC -populatsioon: 319 miljonit

Hostid ja kasutajad:

Iga mänguraamatu näidendi jaoks saate valida, milliseid masinaid oma infrastruktuuris sihtida ja milline kaugkasutaja ülesandeid täita. Hostide kaasamiseks Ansible inventuuri kasutame hostimasinate IP-aadresse.

Üldiselt on hostideks loetelu üks või mitu rühma või hostimustrit, eraldatud koolonitega. Kaugkasutaja on lihtsalt kasutajakonto nimi.

Muutujad:

Ansible kasutab varem määratletud muutujaid, et võimaldada mänguraamatutes ja rollides suuremat paindlikkust. Neid saab kasutada etteantud väärtuste hulga sirvimiseks, juurdepääsuks erinevale teabele, näiteks süsteemi hostinimele, ja mallide teatud stringide asendamiseks konkreetsete väärtustega.

Ansible määratleb juba rikkaliku muutujate komplekti, mis on iga süsteemi jaoks individuaalne. Alati, kui süsteem töötab Ansible, kogutakse kõik faktid ja teave süsteemi kohta ning määratakse muutujateks.

Kuid on olemas reegel muutujate nimetamiseks. Muutujate nimed peaksid olema tähed, numbrid ja alakriipsud. Muutujad peaksid alati algama tähega. Nt wamp_21, port5 on kehtivad muutujate nimed, samas kui 01_port, _server on valed.

Ülesanded:

Ülesanded võimaldavad jaotada konfiguratsioonipoliitika bitid väiksemateks failideks. Ülesanne sisaldab tõmmet teistest failidest. Ansible'i ülesanded sobivad selle ingliskeelse tähendusega.

Näiteks: installimine, värskendamine jne

Töötlejad:

Töötlejad on nagu tavalised ülesanded Ansible playbookis, kuid neid käivitatakse ainult siis, kui ülesanne sisaldab teatamisdirektiivi ja näitab ka, et see midagi muutis. Näiteks kui konfigureerimisfaili muudetakse, võib konfiguratsioonifailile viitav ülesanne teavitada teenuse taaskäivitamise käitlejat.

Lubage mul tuua näide mänguraamatust, mis käivitab Apache httpd-serveriprogrammi:

----võõrustajad: veebiserverid kelle oma: http_port: 80 max_kliendid: 200 remote_user: juur ülesandeid: - nimi: veenduge, et apache oleks uusim versioon yum: nimi = httpd olek = viimane - nimi: kirjuta apache konfiguratsioonifail mall: src = / srv / httpd.j2 dest = / etc / httpd.conf teatama: - taaskäivitage apache - nimi: veenduge, et apache töötab (ja lubage see käivitamisel) teenus: nimi = httpd olek = alustatud lubatud = jah käitlejad: - nimi: taaskäivitage apache teenus: nimi = httpd olek = taaskäivitatud

Loodan, et näide seostab teid kõigi minu poolt eespool nimetatud mänguraamatu komponentide kirjeldustega. Kui see pole teile veel selge, ärge muretsege, et kõik teie kahtlused selguvad selle blogi hilisemas osas.

See kõik käib mänguraamatute kohta. Teie kirjutatud mänguraamatud. Kuid Ansible pakub teile ka laia valikut mooduleid, mida saate kasutada.

Ansible juhendaja - moodulid

Ansible'i moodulid on idempotentsed. RESTfuli teenuse vaatepunktist võivad toimingud (või teenusekõned) idempotentseks muuta, kui kliendid saavad sama kõne teha korduvalt, andes samas sama tulemuse. Teisisõnu, mitme identse päringu tegemisel on sama efekt kui ühe taotluse esitamisel.

Ansible'is on erinevaid mooduleid

  • Põhimoodulid
  • lisamoodulid

Põhimoodulid

Need on moodulid, mida Ansible'i põhimeeskond haldab ja alati Ansible'ga ise kaasas on. Samuti saavad nad kõigi taotluste jaoks veidi kõrgemat prioriteeti kui lisarepositsioonides olevad.

Nende moodulite allikat haldab Ansible GitHubis jaotises Ansible-modules-core.

Lisamoodulid

Need moodulid tarnitakse praegu koos Ansible'iga, kuid neid võidakse tulevikus eraldi tarnida. Samuti hooldab neid enamasti kogukond Ansible. Põhituumad moodulid on endiselt täielikult kasutatavad, kuid võivad probleemide ja tõmbenõuete korral saada veidi madalama vastuse määra.

Populaarseid lisamooduleid võidakse aja jooksul reklaamida põhimooduliteks.

Nende moodulite allikat haldab Ansible GitHubis jaotises Ansible-moodulid-lisad.

Näiteks: kaughalduse moodulite lisamoodul on ipmi_power moodul, mis on kaugarvutite toiteallikaks. See nõuab python 2.6 või uuemat versiooni ja pyghmi töötamist.

Seda moodulit saate kasutada, kirjutades adhoc-käsu, nagu ma olen allpool kirjutanud:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Võimalik õpetus - väärtuste tagastamine

Ansible moodulid tagastavad tavaliselt andmestruktuuri, mida saab registreerida muutujas või näha otse, kui Ansible programm väljastab. Iga moodul võib soovi korral dokumenteerida oma unikaalsed tagastusväärtused.

Mõned näited tagastusväärtustest on:

  • muudetud: naaseb tõeväärtusega väärtusega alati, kui ülesanne teeb muudatusi.
  • nurjus: tagastab tõeväärtuse, kui ülesanne ebaõnnestub
  • msg: tagastab stringi koos kasutajale edastatud üldise sõnumiga.

Ansible juhendaja - AdHoc käsud

Adhoc-käsud on mõne toimingu tegemiseks lihtsad ühe reaga käsud. Ansible käskudega moodulite käitamine on adhoc käsud.

Näiteks:

ansible host -m netscaler -a 'nsc_host = nsc.example.com kasutaja = apiuseri parool = apipass' 

Ülaltoodud adhoc-käsk kasutab serveri keelamiseks netscaleri moodulit. Ansible'is on saadaval sadu mooduleid, kust saate viidata ja kirjutada ajutisi käske.

Noh, piisab kõigist teoreetilistest selgitustest, lubage mul selgitada teid Ansible mõne käega.

Ansible juhendaja - käed külge

Kirjutan mänguraamatu Nginxi installimiseks minu sõlme / hostimasinasse.

Alustagem :)

Samm 1: SSH abil saate ühenduse luua oma hostidega. Selleks peate genereerima avaliku SSH-võtme.

Kasutage allolevat käsku:

ssh-keygen

Looge Ssh-võti - võimalik õpetus - Edureka

Nagu näete ülaltoodud hetkepildist, käsk ssh-keygen genereeris avaliku SSH-võtme.

2. samm: Teie järgmine ülesanne on kopeerida avalik SSH-võti oma hostidele. Selleks kasutage allolevat käsku:

ssh-copy-id -i root @

kuidas teisendada binaararv kümnendkohaks Java keeles

Ülaltoodud hetkepilt näitab SSH-võtme kopeerimist hostidesse.

3. samm: Lisage loendis oma hostide / sõlmede IP-aadressid.

Kasutage järgmist käsku:

vi / etc / ansible / hosts

See avab vi redaktori, kus saate loetleda oma hostide IP-aadressid. See on nüüd teie nimistu.

4. samm: Pingutame, et ühendus oleks loodud.

Ülaltoodud hetktõmmis kinnitab, et teie kontrollmasina ja hosti vahel on ühendus loodud.

5. samm: Kirjutagem nüüd mänguraamat Nginxi installimiseks hostimasinasse. Oma mänguraamatu saate kirjutada vi-redaktorisse. Selleks looge lihtsalt oma mänguraamat käsuga:

vi

Allolev hetktõmmis näitab minu esitusraamatut YAML-vormingus kirjutatud Nginxi installimiseks.

Mänguraamatu ülesanded on YAML-is määratletud sõnastike loendina ja täidetud ülevalt alla. Kui meil on mitu hosti, siis proovitakse iga hosti jaoks iga ülesanne enne järgmise juurde liikumist. Iga ülesanne on defineeritud kui sõnastik, millel võib olla mitu võtit, näiteks „nimi” või „sudo”, mis tähistavad ülesande nime ja kas see nõuab sudoõigusi.

Muutuja server_port on määratud TCP-porti kuulama 8080 sissetulevate taotluste jaoks.

Siin on esimene ülesanne hankida Nginxi installimiseks vajalik pakett ja seejärel installida.Sisemiselt kontrollib Ansible kataloogi olemasolu ja loob selle, kui seda pole, muidu ei tee see midagi.

Järgmine ülesanne on Nginxi seadistamine.Nginxis sisaldavad kontekstid üksikasju konfiguratsiooni kohta.

Siin on mall fail, mida saate hostides juurutada. Kuid mallifailid sisaldavad ka mõningaid viitemuutujaid, mis pärinevad muutumatutest, mis on määratletud osana Ansible playbookist, või hostidest kogutud faktidest. Konfiguratsiooni üksikasju sisaldavad faktid tõmmatakse lähtekataloogist ja kopeeritakse sihtkataloogi.

Käsitlejad määratlevad siin toimingu, mis tuleb teha ainult ülesannetest või olekumuutustest teatamise korral. Selles käsiraamatus määratlesime teavitada: taaskäivitage Nginxi käitleja, mis taaskäivitab Nginxi, kui failid ja mallid hostidesse kopeeritakse.

Nüüd salvestage fail ja väljuge.

6. samm: Käivitame selle mänguraamatu, kasutades allolevat käsku:

ansible-playbook .yml

Ülaltoodud ekraanipildil näeme, et meie ülesanne on käivitatud Nginxi installimine.

7. samm: Kontrollime, kas Nginx on minu hostimasinasse installitud. Kasutage allolevat käsku:

ps waux | grep nginx

Ülaltoodud ekraanipildil näete, et töötavad erinevad protsessi ID-d 3555 ja 103316, mis tagab, et Nginx töötab teie hostimasinates.

Palju õnne! Olete Nginxi edukalt oma hostis juurutanud, kasutades selleks Ansible esiraamatuid. Loodan, et teile on meeldinud seda Ansible Tutoriali ajaveebi lugeda. Palun andke mulle teada, kui teil on allpool kommentaaride jaotises küsimusi.

Kui leidsite selle Ansible juhendaja ”Asjakohane, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka DevOpsi sertifitseerimiskoolitus aitab õppijatel saada SDLC-s mitmete sammude automatiseerimiseks teadmisi DevOpsi protsesside ja tööriistade kohta, nagu näiteks Nuppet, Jenkins, Ansible, Nagios ja Git.