V tomto článku vám ukážu, jak použít konfigurační formát JSON k vytvoření souborů inventáře Ansible. Pojďme tedy začít.
Předpoklady:
Chcete-li vyzkoušet příklady tohoto článku,
1) Musíte mít ve svém počítači nainstalovanou aplikaci Ansible.
2) Musíte mít alespoň 6 hostitelů Linuxu nakonfigurovaných pro automatizaci Ansible.
Existuje mnoho článků o LinuxHint věnovaných instalaci Ansible a konfiguraci hostitelů pro automatizaci Ansible. V případě potřeby je můžete zkontrolovat.
Vytvoření adresáře projektu:
V tomto článku použiji Visual Studio Code pro úpravy konfiguračního souboru Ansible, inventárního souboru a příruček. Můžete použít libovolný editor nebo IDE, které chcete.
Než začnete, vytvořme adresář projektu, abychom mohli uspořádat soubory projektu.
Vytvořil jsem nový adresář projektu json-inventarizace / v mém DOMOV adresář, jak vidíte na snímku obrazovky níže.
Jakmile vytvoříte nový adresář projektu, otevřete jej ve svém oblíbeném textovém editoru nebo IDE.
V kódu Visual Studio přejděte na Soubor > Otevřená složka… jak je uvedeno na snímku obrazovky níže.
Nyní vyberte adresář projektu json-inventarizace / a klikněte na OK.
Adresář projektu by měl být otevřen pomocí Visual Studio Code.
Nyní klikněte na Nový soubor a vytvořte nový soubor zodpovědný.srov.
Poté zadejte následující řádky do pole zodpovědný.srov soubor.
[výchozí]inventář = hostitelé.JSON
host_key_checking = False
Až budete hotovi, stiskněte
Stejným způsobem vytvořte a hostitelé.JSON soubor. Toto je soubor inventáře JSON. Nechte to zatím prázdné. Budeme na tom pracovat později.
Nyní klikněte na Nová složka a vytvořte nový adresář knihy o hře jak je znázorněno na následujícím obrázku.
Přidání hostitelů do souboru JSON Inventory:
V této části vám ukážu, jak přidat hostitele do souboru inventáře ve formátu JSON.
V hostitelé.JSON soubor inventáře, přidáte Všechno sekce.
"Všechno":
v Všechno sekci přidáte a hostitel a přidejte své hostitele.
"Všechno":
"hosts":
"host1": null,
"host2": null
Můžete například přidat hostitele vm1.nodekite.com a vm2.nodekite.com v hostitelé.JSON soubor inventáře následujícím způsobem.
"Všechno":
"hosts":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
Až budete hotovi, stiskněte
Pomocí následujícího příkazu můžete zkontrolovat, kteří hostitelé jsou k dispozici ve vašem souboru inventáře:
$ ansible --list-hosts all
Jak vidíte, hostitelé, které jsem přidal do svého inventárního souboru (vm1.nodekite.com a vm2.nodekite.com) jsou uvedeny.
Seskupení hostitelů v souboru inventáře JSON:
V této části vám ukážu, jak seskupit hostitele ve vašem souboru inventáře JSON.
Výchozí skupina hostitelů v Ansible je Všechno. The Všechno skupina má všechny hostitele z každé skupiny (včetně hostitelů z Všechno skupina).
Skupiny hostitelů přidáte do složky děti část vašeho inventárního souboru JSON.
"Všechno":
…
"children":
"group1":
,
"group2":
Například přidat hostitele vm3.nodekite.com a vm4.nodekite.com v web skupiny a přidat hostitele vm5.nodekite.com a vm6.nodekite.com v db skupina, zadejte následující řádky do souboru inventáře JSON.
"Všechno":
"hosts":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"children":
"web":
"hosts":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"db":
"hosts":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null
Až budete hotovi, stiskněte
Zde označené řádky přidají hostitele vm3.nodekite.com a vm4.nodekite.com v web skupina.
Označené řádky přidají hostitele vm5.nodekite.com a vm6.nodekite.com v db skupina.
Nyní můžete zobrazit všechny dostupné hostitele ve vašem souboru inventáře JSON pomocí následujícího příkazu:
$ ansible --list-hosts all
Jak vidíte, všichni hostitelé z každé skupiny (web, db, a Všechno) se zobrazí.
Seznam dostupných hostitelů z web pouze pro skupinu, spusťte následující příkaz:
$ ansible --list-hosts web
Jak vidíte, všichni hostitelé v web skupiny.
Stejným způsobem můžete zobrazit všechny dostupné hostitele z db skupina s následujícím příkazem:
$ ansible --list-hosts db
Jak vidíte, všichni hostitelé v db skupiny.
Přidání globálních faktů do souboru JSON Inventory:
V Ansible se proměnné nazývají také fakta. Globální fakta nebo globální proměnné jsou přístupné z každého hostitele každé skupiny ve vašem souboru inventáře JSON. V této části vám ukážu, jak přidat globální fakta nebo globální proměnné v ansible.
Do souboru můžete přidat globální fakta nebo globální proměnné vars část uvnitř Všechno části souboru JSON zásob takto:
"Všechno":
"hosts":
…
,
"vars":
"variable1": "value1",
"variable2": "value2"
,
"children":
"web":
…
,
"db":
…
Můžete například přidat globální fakta / proměnné webový kořen a index v vars části souboru JSON zásob takto:
"Všechno":
"hosts":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"children":
"web":
"hosts":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"db":
"hosts":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null
Až budete hotovi, stiskněte
Abych zkontroloval, zda globální fakta / proměnné fungují, vytvořím novou příručku print_vars1.yaml. Účelem této příručky je tisknout fakta / proměnné pomocí ladit modul Ansible. Pomůže nám to později pochopit prioritu faktů / proměnných.
Vytvořte tedy novou příručku print_vars1.yaml ve vašem knihy o hře / adresář a zadejte následující řádky ve vašem print_vars1.yaml soubor.
- hostitelé: všichniuživatel: odpovědný
úkoly:
- name: Tisk webové kořenové složky a rejstříku
ladit:
msg: 'WebRoot webroot and Index index'
Až budete hotovi, stiskněte
Chcete-li zkontrolovat, zda globální fakta / proměnné fungují, spusťte příkaz print_vars1.yaml playbook takto:
$ ansible-playbook playbooks / print_vars1.yaml
Příručka by se měla úspěšně spustit.
Přejděte zpět na ikonu ÚKOL sekce. Jak vidíte, webový kořen a index fakta / proměnné jsou aplikovány na každého hostitele v mém souboru inventáře JSON. Globální fakta / proměnné tedy fungují.
Přidání faktů o skupině do souboru inventáře JSON:
Můžete také přidat fakta / proměnné pro konkrétní skupinu hostitelů. V této části vám ukážu, jak přidat skupinová fakta / proměnné do souboru inventáře JSON.
Přidám totéž webový kořen a index fakta v web hostitelská skupina mého souboru inventáře JSON. Hodnota těchto skutečností se bude lišit. Udělal jsem to proto, abyste pochopili, jak v Ansible fungují fakta / přednosti proměnných.
Chcete-li přidat fakta webový kořen a index v web hostitelská skupina, přidejte vars sekce v web části souboru JSON zásob takto:
"Všechno":
"hosts":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"children":
"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
Až budete hotovi, stiskněte
Chcete-li zkontrolovat fakta, spusťte print_vars1.yaml playbook takto:
$ ansible-playbook playbooks / print_vars1.yaml
Jak vidíte, fakta o skupině webový kořen a index jsou k dispozici pouze pro hostitele vm3.nodekite.com a vm4.nodekite.com, hostitelé v web skupina.
Všimněte si také, že fakta o skupině (webový kořen a index) nahradil globální fakta (webový kořen a index). Můžete tedy říci, že skupinová fakta mají vyšší prioritu než globální fakta.
Přidání faktů o hostiteli do souboru JSON Inventory:
Fakta / proměnné specifické pro hostitele můžete přidat také do souboru inventáře JSON. V této části vám ukážu, jak přidat fakta / proměnné specifické pro hostitele do souboru inventáře JSON.
U globálních nebo skupinových faktů jsme ponechali hodnotu hostitelů nula.
Chcete-li přidat fakta o hostiteli, nahraďte je nula s fakty hostitele v souboru inventáře JSON následujícím způsobem:
"hosts":"host1":
"var1": "hodnota1",
"var2": "value2",
,
"host2":
"var2": "value3",
"var3": "value4",
Například přidat index hostitelská skutečnost pro vm5.nodekite.com hostitel, vyměnit nula s hostitelskými fakty následovně.
"Všechno":
"hosts":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"children":
"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
Až budete hotovi, stiskněte
Chcete-li zkontrolovat dostupná fakta, spusťte print_vars1.yaml playbook takto:
$ ansible-playbook playbooks / print_vars1.yaml
Jak vidíte, index fakt je k dispozici pouze pro vm5.nodekite.com hostitel.
Všimněte si také, že skutečnost hostitele nahradila skutečnost globální. Fakta / proměnné hostitele mají v Ansible nejvyšší prioritu. Takže hostitelská fakta / proměnné nahradí skupinová fakta / proměnné a globální fakta / proměnné.
Závěr:
V tomto článku jsem vám ukázal, jak vytvořit Ansible inventární soubor ve formátu JSON. Ukázal jsem vám, jak přidat hostitele, přidat skupiny hostitelů, přidat globální fakta, přidat fakta o skupině a přidat fakta o hostiteli do souboru inventáře ve formátu JSON.