Ansible Tutorial - Opi kirjoittamaan Ansible Playbooks

Tässä Ansible Tutorial -blogissa opit kirjoittamaan Ansible-soittokirjoja, adhoc-komentoja ja suorittamaan käytännön toimia Nginxin käyttöönottamiseksi isäntäkoneellasi.

Ansible Tutorial

Toivon, että kävit läpi edellisen blogini oppia ja Ansiblein eniten käytetyt terminologiat. Jos et ole tehnyt niin, tarkista se, jotta saat paremman käsityksen tästä Ansible Tutorial -oppaasta.Sinun tulisi myös tietää, että Ansible muodostaa ratkaisevan osan työkaluna kokoonpanon hallintaan, käyttöönottoon ja orkestrointiin.

Haluan antaa sinulle yleiskuvan tästä 'Ansible Tutorialista':



Ansible Playbook -opetusohjelma DevOps-koulutus | Edureka

Ansible Tutorial - Ansible Playbooksin kirjoittaminen

Ansible-soittokirjat on kirjoitettu YAML-muodossa. Se on ihmisen luettavissa oleva tietojen sarjakieli. Sitä käytetään yleisesti kokoonpanotiedostoissa. Sitä voidaan käyttää myös monissa sovelluksissa, joihin tietoja tallennetaan.

Ansible-sovelluksessa lähes kaikki YAML-tiedostot alkavat luettelosta. Jokainen luettelon kohde on luettelo avain / arvo-pareista, joita yleensä kutsutaan 'hashiksi' tai 'sanakirjaksi'. Joten meidän on osattava kirjoittaa luetteloita ja sanakirjoja YAML: ssä.

Kaikki luettelon jäsenet ovat rivejä, jotka alkavat samalla sisennystasolla alkaen '-' (viiva ja välilyönti). Mahdollisuudet ovat monimutkaisemmat tietorakenteet, kuten luettelot sanakirjoista tai sekasanastoista, joiden arvot ovat luetteloita tai molempien yhdistelmiä.

esim. Luettelo edurekan osastoista:

osastot: - markkinointi - myynti - ratkaisut - sisällön kirjoittaminen - tuki - tuote

Annan nyt esimerkin sanakirjasta:

-USA-manner: Pohjois-Amerikka -pääkaupunki: Washington DC -väkiluku: 319 miljoonaa

Isännät ja käyttäjät:

Jokaisen pelikirjan pelin kohdalla sinun on valittava, mitkä koneesi infrastruktuurissasi kohdistetaan ja mikä etäkäyttäjä suorittaa tehtävät. Jos haluat sisällyttää isännät Ansible-mainosjakaumaan, käytämme isäntäkoneiden IP-osoitteita.

Yleensä isännät ovat luettelo yhdestä tai useammasta ryhmästä tai isäntämallista, erotettuna kaksoispisteillä. Etäkäyttäjä on vain käyttäjätilin nimi.

Muuttujat:

Ansible käyttää aiemmin määriteltyjä muuttujia joustavuuden lisäämiseksi soittokirjoissa ja rooleissa. Niitä voidaan käyttää silmukoiden läpi annettujen arvojen läpi, pääsemään erilaisiin tietoihin, kuten järjestelmän isäntänimiin, ja korvaamaan tietyt merkkijonot malleissa tietyillä arvoilla.

Ansible määrittää jo rikkaan muuttujien joukon, jokaiselle järjestelmälle yksilöllisen. Aina kun Ansible toimii järjestelmässä, kaikki järjestelmää koskevat tiedot kerätään ja asetetaan muuttujiksi.

Mutta on sääntö muuttujien nimeämiseen. Muuttujien nimien tulisi olla kirjaimia, numeroita ja alaviivoja. Muuttujien tulisi aina alkaa kirjaimella. Esim. wamp_21, portti5 on kelvolliset muuttujien nimet, kun taas 01_port, _server ovat virheellisiä.

Tehtävät:

Tehtävien avulla voit jakaa kokoonpanokäytännön bitit pienempiin tiedostoihin. Tehtävä sisältää vedon muista tiedostoista. Ansible-tehtävissä on melkein englanninkielinen merkitys.

Esim .: Asenna, päivitä jne.

kuinka asettaa luokkatie java

Käsittelijät:

Käsittelijät ovat kuin tavalliset tehtävät Ansible-soittokirjassa, mutta ne suoritetaan vain, jos Tehtävä sisältää ilmoitusdirektiivin ja osoittaa myös, että se muutti jotain. Jos esimerkiksi asetustiedostoa muutetaan, konfigurointitiedostoon viittaava tehtävä voi ilmoittaa palvelun uudelleenkäynnistyskäsittelijälle.

Annan sinulle esimerkin soittokirjasta, joka käynnistää Apache httpd -palvelinohjelman:

----isännät: verkkopalvelimet jonka: http_port: 80 max_clients: 200 remote_user: juuri tehtäviä: - nimi: Varmista, että apache on uusin versio yum: nimi = httpd-tila = viimeisin - nimi: kirjoita apache-määritystiedosto sapluuna: src = / srv / httpd.j2 dest = / etc / httpd.conf ilmoittaa: - Käynnistä apache uudelleen - nimi: varmista, että apache on käynnissä (ja ota se käyttöön käynnistyksen yhteydessä) palvelu: nimi = httpd-tila = aloitettu käytössä = kyllä käsittelijät: - nimi: Käynnistä apache uudelleen palvelu: nimi = httpd-tila = käynnistetty uudelleen

Toivon, että esimerkki liittyy kaikkiin edellä mainittuihin pelikirjan komponenttien kuvauksiin. Jos se ei vieläkään ole sinulle selvää, älä huoli, kaikki epäilyt ovat selvät tämän blogin myöhemmässä osassa.

Kyse on pelikirjoista. Pelikirjat, jotka kirjoitat itse. Mutta Ansible tarjoaa sinulle myös laajan valikoiman moduuleja, joita voit käyttää.

Ansible Tutorial - moduulit

Ansible-moduulit ovat idempotentteja. RESTful-palvelun näkökulmasta, jotta operaatio (tai palvelupuhelu) olisi idempotenttinen, asiakkaat voivat soittaa saman puhelun toistuvasti ja tuottaa saman tuloksen. Toisin sanoen useiden identtisten pyyntöjen tekemisellä on sama vaikutus kuin yhden pyynnön tekemisellä.

Ansible-moduuleissa on erityyppisiä moduuleja

  • Ydinmoduulit
  • lisämoduulit

Ydinmoduulit

Nämä ovat moduuleja, joita Ansible-ydintiimi ylläpitää ja toimittaa aina Ansible-tuotteen kanssa. He saavat myös jonkin verran korkeamman prioriteetin kaikista pyynnöistä kuin ”extrat” -repoista.

Näiden moduulien lähdettä isännöi Ansible GitHubissa Ansible-moduulien ytimessä.

Ekstrat moduulit

Nämä moduulit toimitetaan tällä hetkellä Ansible-paketin mukana, mutta ne voidaan toimittaa erikseen tulevaisuudessa. Niitä ylläpitää myös enimmäkseen Ansible-yhteisö. Muut kuin ydinmoduulit ovat edelleen täysin käyttökelpoisia, mutta ne voivat saada hieman alhaisemmat vastausprosentit ongelmiin ja vetopyyntöihin.

Suositut 'extrat' ​​-moduulit saatetaan ajan myötä mainostaa ydinmoduuleiksi.

Näiden moduulien lähdettä isännöi Ansible GitHubissa Ansible-modules-extras.

Esim .: Etähallintamoduulien lisäominaisuuksista on ipmi_power-moduuli, joka on etäkoneiden virransyöttö. Se vaatii python 2.6: n tai uudemman ja pyghmin.

Voit käyttää tätä moduulia kirjoittamalla adhoc-komennon, jonka olen kirjoittanut alla:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'päällä'

Ansible Tutorial - Palauta arvot

Ansible-moduulit palauttavat yleensä tietorakenteen, joka voidaan rekisteröidä muuttujaan tai nähdä suoraan, kun Ansible-ohjelma tuottaa sen. Jokainen moduuli voi valinnaisesti dokumentoida omat ainutlaatuiset paluuarvot.

Joitakin esimerkkejä palautusarvoista ovat:

  • muutettu: palaa loogisella arvolla aina, kun tehtävä tekee muutoksia.
  • epäonnistui: palauttaa loogisen arvon, jos tehtävä epäonnistuu
  • msg: se palauttaa merkkijonon, jossa yleinen viesti välitetään käyttäjälle.

Ansible Tutorial - AdHoc-komennot

Adhoc-komennot ovat yksinkertaisia ​​yhden rivin komentoja joidenkin toimintojen suorittamiseen. Moduulien suorittaminen Ansible-komennoilla ovat adhoc-komentoja.

Esim:

mahdollinen isäntä -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Yllä oleva adhoc-komento käyttää netscaler-moduulia palvelimen poistamiseen käytöstä. Ansible-sovelluksessa on satoja moduuleja, joista voit viitata ja kirjoittaa adhoc-komentoja.

No, riittää kaikilla teoreettisilla selityksillä, haluan selittää teille Ansible kädellä.

Ansible Tutorial - Kädet päällä

Aion kirjoittaa soittokirjan Nginxin asentamiseksi solmuun / isäntäkoneeseeni.

Aloitetaanpa :)

Vaihe 1: Muodosta yhteys isäntiin SSH: n avulla. Tätä varten sinun on luotava julkinen SSH-avain.

Käytä alla olevaa komentoa:

ssh-keygen

Luo Ssh-avain - Ansible Tutorial - Edureka

Kuten yllä olevasta tilannekuvasta näet, komento ssh-keygen luonut julkisen SSH-avaimen.

Vaihe 2: Seuraava tehtäväsi on kopioida julkinen SSH-avain isäntiin. Voit tehdä sen käyttämällä alla olevaa komentoa:

ssh-copy-id -i root @

Yllä oleva tilannekuva osoittaa SSH-avaimen kopioinnin isäntiin.

Vaihe 3: Luettele isäntien / solmujen IP-osoitteet luettelossa.

Käytä seuraavaa komentoa:

vi / etc / ansible / hosts

Tämä avaa vi-editorin, jossa voit luetella isäntien IP-osoitteet. Tämä on nyt sinun varastosi.

Vaihe 4: Varmista, että yhteys on muodostettu.

Yllä oleva tilannekuva vahvistaa, että yhteys ohjauskoneesi ja isännän välille on muodostettu.

Vaihe 5: Kirjoitetaan nyt soittokirja Nginxin asentamiseksi isäntäkoneeseen. Voit kirjoittaa soittokirjan vi-editoriin. Luo sitä varten yksinkertaisesti pelikirjasi komennolla:

vi

Alla oleva tilannekuva näyttää soittokirjani Nginxin asentamiseksi, joka on kirjoitettu YAML-muodossa.

Pelikirjan tehtävät määritellään YAML: ssä sanakirjaluettelona ja suoritetaan ylhäältä alas. Jos meillä on useita isäntiä, jokainen tehtävä yritetään jokaiselle isännälle ennen siirtymistä seuraavaan. Jokainen tehtävä määritellään sanakirjaksi, jolla voi olla useita avaimia, kuten 'nimi' tai 'sudo', jotka merkitsevät tehtävän nimeä ja tarvitsevatko se sudo-käyttöoikeuksia.

Muuttuja palvelimen portti on asetettu kuuntelemaan TCP-porttia 8080 saapuvia pyyntöjä varten.

Tässä ensimmäinen tehtävä on hankkia tarvittava paketti Nginxin asentamista varten ja asentaa se sitten.Sisäisesti Ansible tarkistaa, onko hakemisto olemassa, ja luo sen, jos sitä ei ole, muuten se ei tee mitään.

Seuraava tehtävä on määrittää Nginx.Nginxissä kontekstit sisältävät määritystiedot.

Tässä malli on tiedosto, jonka voit ottaa käyttöön isäntiin. Mallitiedostoissa on kuitenkin myös joitain viitemuuttujia, jotka on vedetty muuttujista, jotka on määritelty osana Ansible playbookia, tai isännöiltä kerättyjä faktoja. Kokoonpanon yksityiskohtia sisältävät faktat haetaan lähdehakemistosta ja kopioidaan kohdehakemistoon.

Käsittelijät määrittelevät tässä suoritettavan toiminnon vain ilmoitettaessa tehtävistä tai tilamuutoksista. Tässä soittokirjassa määritimme ilmoituksen: uudelleenkäynnistä Nginx-käsittelijä, joka käynnistää Nginxin uudelleen, kun tiedostot ja mallit kopioidaan isäntiin.

Tallenna tiedosto ja poistu.

Vaihe 6: Suoritetaan nyt tämä soittokirja seuraavalla komennolla:

ansible-playbook .yml

Yllä olevasta kuvakaappauksesta voidaan nähdä, että tehtävämme on suorittaa suoritettu Nginx asennettuna.

Vaihe 7: Tarkistetaan, onko Nginx asennettu isäntäkoneelleni. Käytä alla olevaa komentoa:

ps waux | grep nginx

Yllä olevasta kuvakaappauksesta näet, että eri prosessitunnukset 3555 ja 103316 ovat käynnissä, mikä varmistaa, että Nginx on käynnissä isäntäkoneissasi.

java löytää korkeimman arvon taulukosta

Onnittelut! Olet asentanut Nginxin onnistuneesti isäntään käyttämällä Ansible-soittokirjoja. Toivottavasti olet nauttinut tämän Ansible Tutorial -blogin lukemisesta. Kerro minulle, jos sinulla on kysyttävää alla olevasta kommenttiosasta.

Jos löysit tämän Ansible Tutorial ”Asiaankuuluva, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutus auttaa oppijoita saamaan asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Ansible, Nagios ja Git SDLC: n useiden vaiheiden automatisoimiseksi.