miten työskennellä mahdollisten muuttujien ja faktojen kanssa – osa 8

olemme maininneet muuttujat tässä mahdollisessa sarjassa ja vain virkistääksemme mieltäsi hieman. Muuttuja, kuten monissa ohjelmointikielissä, on pohjimmiltaan avain, joka edustaa arvoa.

mikä on kelvollinen muuttujan nimi?

muuttujan nimi sisältää kirjaimia, numeroita, alaviivoja tai joko 2: n tai kaikkien niiden yhdistelmän. Muista kuitenkin, että muuttujan nimen on aina alettava kirjaimella eikä siinä saa olla välilyöntejä.

Katsotaanpa muutamia esimerkkejä kelvollisista ja sopimattomista muuttujan nimistä:

kelvolliset muuttujan nimen esimerkit:

football foot_ballfootball20 foot_ball20

Ei-kelvollinen muuttujan nimi esimerkkejä:

foot ball20 foot-ball

puhutaan muuttujatyypeistä:

Playbook-muuttujat

Playbook-muuttujat ovat melko helppoja ja suoraviivaisia. Jos haluat määritellä muuttujan pelikirjassa, käytä avainsanaa vars ennen muuttujien kirjoittamista sisennyksellä.

jos haluat käyttää muuttujan arvoa, aseta se lainausmerkeillä ympäröityjen kahden kiharan olkaimien väliin.

tässä yksinkertainen pelikirjaesimerkki:

- hosts: all vars: greeting: Hello world! tasks: - name: Ansible Basic Variable Example debug: msg: "{{ greeting }}"

yllä olevassa pelikirjassa tervehdysmuuttuja korvataan arvolla Hello world! kun pelikirjaa ajetaan. Playbook yksinkertaisesti tulostaa viestin Hello world! kun teloitettiin.

pelikirjan muuttujat oppaassa

lisäksi voit esittää luettelon tai joukon muuttujia kuten on esitetty:

alla olevassa pelikirjassa on muuttuja nimeltä maanosat. Muuttujalla on 5 eri arvoa-maanosan nimet. Jokainen näistä arvoista voidaan helposti käyttää indeksiä 0 ensimmäisenä muuttujana.

alla oleva pelikirjan esimerkki hakee ja näyttää Aasian (indeksi 1).

muuttujien joukko (saatavilla)

muuttujaluettelo voidaan jäsentää samoin kuin esitetään:

vars: Continents: 

jos haluat luetella kaikki listan kohteet, käytä with_items-moduulia. Tämä silmukka läpi kaikki arvot array.

List Ansable Array Variables

Another type of Ansable variable is the dictionary variable.

sanakirjan muuttujia tuetaan lisäksi pelikirjassa. Määrittele sanakirjamuuttuja yksinkertaisesti tunnistamalla avainarvopari juuri sanakirjamuuttujan nimen alapuolella.

hosts: switch_f01vars: http_port: 8080 default_gateway: 10.200.50.1 vlans: id: 10 port: 2

yllä olevassa esimerkissä vlan on sanakirjamuuttuja, kun taas id ja portti ovat avainarvoparit.

port_id: ssä arvo aloitetaan tekstillä eikä muuttujalla, joten lainausmerkit eivät ole tarpeen kiharan aaltosulkujen ympäröimiseksi.

Special Variables

Ansable sisältää luettelon ennalta määritetyistä muuttujista, joihin voidaan viitata Jinja2-malleissa ja pelikirjoissa, mutta joita käyttäjä ei voi muuttaa tai määritellä.

yhdessä mahdollisten ennalta määriteltyjen muuttujien luetteloa kutsutaan mahdollisiksi faktoiksi, ja ne kootaan pelikirjaa suoritettaessa.

saadaksesi luettelon kaikista mahdollisista muuttujista, käytä Määritysmoduulia mahdollisessa ad-hoc-komennossa kuten alla on esitetty:

# ansible -m setup hostname

tämä näyttää tulosteen JSON-muodossa:

# ansible -m setup localhost
luettelo mahdolliset muuttujat

tulosteesta voidaan nähdä, että joitakin esimerkkejä mahdollisista erikoismuuttujista ovat:

on monia muita mahdollisia erikoismuuttujia nämä ovat vain muutamia esimerkkejä.

näitä muuttujia voidaan käyttää jinja2-mallissa kuten on esitetty:

Varastomuuttujat

lopuksi luettelossa on mahdolliset varastomuuttujat. Inventaario on ini-muodossa oleva tiedosto, joka sisältää kaikki mahdolliset isännät.

inventaarioissa muuttujan voi määrittää isäntäjärjestelmään ja myöhemmin käyttää sitä pelikirjassa.

web_server_1 ansible_user=centos http_port=80web_server_2 ansible_user=ubuntu http_port=8080

yllä oleva voidaan esittää playbook YAML-tiedostossa kuten:

--- web_servers: web_server_1: ansible_user=centos http_port=80web_server_2: ansible_user=ubuntu http_port=8080

jos isäntäjärjestelmät jakavat samat muuttujat, inventaariotiedostoon voi määritellä toisen ryhmän, jotta se olisi vähemmän kankea ja välttyisi turhalta toistolta.

esimerkiksi:

web_server_1 ansible_user=centos http_port=80web_server_2 ansible_user=centos http_port=80

edellä voidaan jäsentää seuraavasti:

web_server_1web_server_2ansible_user=centoshttp_port=80

ja playbook YAML-tiedostossa tämä määritellään esitetyllä tavalla:

--- web_servers: hosts: web_server_1: web_server_2: vars: ansible_user=centos http_port=80

Ansible Facts

playbookeja ajettaessa ensimmäinen tehtävä, jonka Ansable tekee, on asetustehtävän suorittaminen. Olen melko varma, että törmäsit ulostuloon.:

TASK: *********

mahdolliset faktat eivät ole muuta kuin järjestelmän ominaisuuksia tai tiedon palasia etäsolmuista, joihin olet yhdistänyt. Nämä tiedot sisältävät järjestelmäarkkitehtuurin, käyttöjärjestelmän version, BIOS-tiedot, järjestelmän ajan ja päivämäärän, järjestelmän käytettävyysajan, IP-osoitteen ja laitteistotiedot vain muutamia mainitakseni.

saadaksesi tietoja mistä tahansa järjestelmästä, käytä asetusmoduulia alla olevan komennon mukaisesti:

# ansible -m setup hostname

esimerkiksi:

# ansible -m setup database_server

Tämä tulostaa suuren joukon tietoja JSON-muodossa kuten näkyy:

helposti saatavat Järjestelmätiedot

Helpot faktat auttavat järjestelmän ylläpitäjiä, mitä toimintoja suoritetaan, esimerkiksi käyttöjärjestelmästä riippuen, he voivat tietää, mitä ohjelmistopaketteja on asennettava ja miten ne on konfiguroitava jne.

Custom Facts

Tiesitkö myös, että voit luoda omia mukautettuja faktoja, joita voi koota helposti? Kyllä voit. Miten teet sen? Vaihdetaan vaihdetta ja katsotaan miten.

ensimmäinen askel on luoda / etc/oppable / facts.d hallinnoidun tai etäsolmun Hakemisto.

luo tämän kansion sisällä tiedosto(t), jolla on .fact – pääte. Tämä tiedosto(t) palauttaa JSON-tiedot, kun pelikirjaa suoritetaan Ansable control node-järjestelmässä, joka sisältää muut tiedot, jotka (jotka) voidaan hakea playbook-ajon jälkeen.

tässä on esimerkki muokatusta faktatiedostosta nimeltä date_time.se, että hakee päivämäärä ja aika.

# mkdir -p /etc/ansible/facts.d# vim /etc/ansible/facts.d/date_time.fact

lisää siihen seuraavat rivit

#!/bin/bashDATE=`date`echo "{\"date\" : \"${DATE}\"}"

Tallenna ja poistu tiedostosta.

anna nyt suoritusoikeudet:

# chmod +x /etc/ansible/facts.d/date_time.fact

nyt loin liukenevasta ohjaussolmusta pelikirjan nimeltä check_date.yml.

---- hosts: webservers tasks: - name: Get custom facts debug: msg: The custom fact is {{ansible_local.date_time}}

Liitä tiedosto ansible_local-muuttujaan. Ansible_local tallentaa kaikki mukautetut tosiasiat.

Suorita nyt pelikirja ja tarkkaile, miten saat tiedot, jotka on tallennettu asiakirjoihin:

# ansible_playbook check_date.yml
Create Ansible Custom Facts
Conclusion

This brings us to the end of this tutorial on working with Ansible variables and facts.

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post STEPHEN SCHWARTZ-WICKED GOOD COMPOSER
Next post 7 Ways Your Children may Bypass Parental Control Software