V tomto článku vám ukážem, ako používať konfiguračný formát JSON na vytvorenie súborov inventára Ansible. Takže poďme na to.
Predpoklady:
Ak si chcete vyskúšať príklady tohto článku,
1) Musíte mať v počítači nainštalovaný program Ansible.
2) Musíte mať aspoň 6 hostiteľov Linuxu nakonfigurovaných na automatizáciu Ansible.
Existuje veľa článkov o LinuxHint venovaných inštalácii Ansible a konfigurácii hostiteľov pre automatizáciu Ansible. V prípade potreby ich môžete skontrolovať.
Vytvorenie adresára projektu:
V tomto článku použijem Visual Studio Code na úpravu konfiguračného súboru Ansible, inventárneho súboru a kníh na čítanie. Môžete použiť ľubovoľný editor alebo IDE, ktoré chcete.
Skôr ako začnete, vytvorme si adresár projektu, aby sme mohli usporiadať súbory projektu.
Vytvoril som nový adresár projektu json-inventar / v mojom DOMOV ako vidíte na snímke obrazovky nižšie.
Po vytvorení nového adresára projektu ho otvorte vo svojom obľúbenom textovom editore alebo IDE.
V Visual Studio Code prejdite na Súbor > Otvorte zložku… ako je vyznačené na snímke obrazovky nižšie.
Teraz vyberte adresár projektu json-inventar / a kliknite na Ok.
Adresár projektu by sa mal otvoriť pomocou Visual Studio Code.
Teraz kliknite na Nový súbor a vytvorte nový súbor zodpovedné.porov.
Potom zadajte nasledujúce riadky do súboru zodpovedné.porov spis.
[predvolené hodnoty]inventár = hostitelia.json
host_key_checking = False
Po dokončení stlačte
Rovnakým spôsobom vytvorte a hostitelia.json spis. Toto je súbor inventára JSON. Zatiaľ to nechajte prázdne. Budeme na tom pracovať neskôr.
Teraz kliknite na Nový priečinok a vytvorte nový adresár knihy o hre ako je znázornené na snímke obrazovky nižšie.
Pridanie hostiteľov do súboru inventára JSON:
V tejto časti vám ukážem, ako pridať hostiteľov do súboru inventára vo formáte JSON.
V hostitelia.json inventárny súbor, pridáte všetko oddiel.
"all":
V všetko oddiel, pridáte a hostiteľ a pridajte svojich hostiteľov.
"all":
"hosts":
"host1": null,
"host2": null
Môžete napríklad pridať hostiteľov vm1.nodekite.com a vm2.nodekite.com v hostitelia.json inventarizačný súbor nasledovne.
"all":
"hosts":
„vm1.nodekite.com ": null,
„vm2.nodekite.com ": null
Po dokončení stlačte
Pomocou nasledujúceho príkazu môžete skontrolovať, ktorí hostitelia sú k dispozícii v súbore inventára:
$ ansible --list-hosts všetko
Ako vidíte, hostitelia, ktorých som pridal do svojho inventárneho súboru (vm1.nodekite.com a vm2.nodekite.com) sú uvedené.
Zoskupenie hostiteľov v súbore zásob JSON:
V tejto časti vám ukážem, ako zoskupiť hostiteľov vo vašom súbore súborov JSON.
Predvolená skupina hostiteľov v priečinku Ansible je všetko. The všetko skupina má všetkých hostiteľov z každej skupiny (vrátane hostiteľov z všetko skupina).
Skupiny hostiteľov pridáte do priečinka deti sekcia vášho inventárneho súboru JSON.
"all":
…
"deti":
"group1":
,
"group2":
Napríklad na pridanie hostiteľov vm3.nodekite.com a vm4.nodekite.com v web skupiny a pridať hostiteľov vm5.nodekite.com a vm6.nodekite.com v db skupina, zadajte nasledujúce riadky do súboru inventára JSON.
"all":
"hosts":
„vm1.nodekite.com ": null,
„vm2.nodekite.com ": null
,
"deti":
„web“:
"hosts":
„vm3.nodekite.com ": null,
„vm4.nodekite.com ": null
,
"db":
"hosts":
„vm5.nodekite.com ": null,
„vm6.nodekite.com ": null
Po dokončení stlačte
Tu označené riadky pridajú hostiteľov vm3.nodekite.com a vm4.nodekite.com v web skupina.
Označené riadky pridávajú hostiteľov vm5.nodekite.com a vm6.nodekite.com v db skupina.
Teraz môžete uviesť všetkých dostupných hostiteľov v súbore inventára JSON pomocou nasledujúceho príkazu:
$ ansible --list-hosts všetko
Ako vidíte, všetci hostitelia z každej skupiny (web, db, a všetko) sa zobrazia.
Zoznam dostupných hostiteľov nájdete na serveri web iba pre skupinu, spustite nasledujúci príkaz:
$ ansible --list-hosts web
Ako vidíte, všetci hostitelia v web skupiny.
Rovnakým spôsobom môžete uviesť všetkých dostupných hostiteľov z priečinka db skupina s nasledujúcim príkazom:
$ ansible --list-hosts db
Ako vidíte, všetci hostitelia v db skupiny.
Pridanie globálnych faktov do súboru inventára JSON:
V Ansible sa premenné nazývajú aj fakty. Globálne fakty alebo globálne premenné sú prístupné z každého hostiteľa každej skupiny vo vašom súbore súborov JSON. V tejto časti vám ukážem, ako pridať globálne fakty alebo globálne premenné do zodpovednosti.
Do súboru môžete pridať globálne fakty alebo globálne premenné vars oddiel vo vnútri všetko časti súboru inventára JSON nasledovne:
"all":
"hosts":
…
,
"vars":
"variable1": "value1",
"variable2": "value2"
,
"deti":
„web“:
…
,
"db":
…
Môžete napríklad pridať globálne fakty / premenné webový koreň a index v vars časti súboru inventára JSON nasledovne:
"all":
"hosts":
„vm1.nodekite.com ": null,
„vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"deti":
„web“:
"hosts":
„vm3.nodekite.com ": null,
„vm4.nodekite.com ": null
,
"db":
"hosts":
„vm5.nodekite.com ": null,
„vm6.nodekite.com ": null
Po dokončení stlačte
Aby som skontroloval, či fungujú globálne fakty / premenné, vytvorím nový playbook print_vars1.yaml. Účelom tejto príručky je vytlačiť fakty / premenné pomocou ladiť modul Ansible. Pomôže nám to tiež neskôr pochopiť dôležitosť faktov / premenných.
Vytvorte teda nový playbook print_vars1.yaml vo vašom knihy o hre / adresár a zadajte nasledujúce riadky vo vašom print_vars1.yaml spis.
- hostitelia: všetciužívateľ: zodpovedný
úlohy:
- name: Tlač webrootu a indexu
ladenie:
správa: 'WebRoot webroot a index index'
Po dokončení stlačte
Ak chcete skontrolovať, či globálne fakty / premenné fungujú, spustite príkaz print_vars1.yaml príručka takto:
$ ansible-playbook playbooks / print_vars1.yaml
Príručka by sa mala úspešne spustiť.
Posuňte sa späť na ikonu ÚLOHA oddiel. Ako vidíte, webový koreň a index fakty / premenné sa používajú na každého hostiteľa v mojom súbore súborov JSON. Globálne fakty / premenné teda fungujú.
Pridanie faktov o skupine do súboru inventára JSON:
Môžete tiež pridať fakty / premenné pre konkrétnu skupinu hostiteľov. V tejto časti vám ukážem, ako pridať skupinové fakty / premenné do súboru inventára JSON.
To isté pridám webový koreň a index fakty v web hostiteľská skupina môjho súboru inventára JSON. Hodnota týchto skutočností bude iná. Urobil som to preto, aby ste tiež pochopili, ako fungujú fakty / premenná prednosť v aplikácii Ansible.
Pre doplnenie faktov webový koreň a index v web hostiteľská skupina, pridajte a vars časť v web časti súboru inventára JSON nasledovne:
"all":
"hosts":
„vm1.nodekite.com ": null,
„vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"deti":
„web“:
"hosts":
„vm3.nodekite.com ": null,
„vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "
,
"db":
"hosts":
„vm5.nodekite.com ": null,
„vm6.nodekite.com ": null
Po dokončení stlačte
Ak chcete skontrolovať fakty, spustite príkaz print_vars1.yaml príručka takto:
$ ansible-playbook playbooks / print_vars1.yaml
Ako vidíte, skupinové fakty webový koreň a index sú k dispozícii iba pre hostiteľov vm3.nodekite.com a vm4.nodekite.com, hostitelia v web skupina.
Upozorňujeme tiež, že skupinové fakty (webový koreň a index) nahradil globálne fakty (webový koreň a index). Môžete teda povedať, že skupinové fakty majú vyššiu prednosť ako globálne fakty.
Pridanie faktov o hostiteľovi do súboru inventára JSON:
Fakty alebo premenné špecifické pre hostiteľa môžete pridať aj do súboru inventára JSON. V tejto časti vám ukážem, ako pridať fakty alebo premenné špecifické pre hostiteľa do súboru inventára JSON.
Pre globálne alebo skupinové fakty sme ponechali hodnotu hostiteľov nulový.
Ak chcete pridať fakty o hostiteľovi, nahraďte ich nulový s údajmi o hostiteľovi v inventárnom súbore JSON nasledovne:
"hosts":"host1":
"var1": "hodnota1",
"var2": "hodnota2",
,
"host2":
"var2": "hodnota3",
"var3": "hodnota4",
Napríklad pridať index hostiteľská skutočnosť pre vm5.nodekite.com hostiť, vymeniť nulový s faktami hostiteľa nasledujúcim spôsobom.
"all":
"hosts":
„vm1.nodekite.com ": null,
„vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"deti":
„web“:
"hosts":
„vm3.nodekite.com ": null,
„vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "
,
"db":
"hosts":
„vm5.nodekite.com ":
"index": "index.py "
,
„vm6.nodekite.com ": null
Po dokončení stlačte
Dostupné fakty skontrolujete spustením print_vars1.yaml príručka takto:
$ ansible-playbook playbooks / print_vars1.yaml
Ako vidíte, index skutočnosť je k dispozícii iba pre vm5.nodekite.com hostiteľ.
Všimnite si tiež, že skutočnosť hostiteľa nahradila skutočnosť globálnu. Hostiteľské fakty / premenné majú najvyššiu prioritu v položke Ansible. Takže hostiteľské fakty / premenné nahradia skupinové fakty / premenné a globálne fakty / premenné.
Záver:
V tomto článku som vám ukázal, ako vytvoriť inventárny súbor Ansible vo formáte JSON. Ukázal som vám, ako pridať hostiteľov, pridať skupiny hostiteľov, pridať globálne fakty, pridať fakty o skupine a pridať fakty o hostiteľovi do súboru inventára vo formáte JSON.