Možné

Jak používat možná vlastní fakta

Jak používat možná vlastní fakta
Fakta jsou jako proměnné v Ansible. Ansible generuje mnoho faktů, v závislosti na hostiteli, který automatizuje. Pokud potřebujete, můžete také v Ansible definovat vlastní fakta / proměnné.

V aplikaci Ansible můžete definovat tři typy vlastních faktů.

1) Globální fakta: Tato fakta jsou přístupná z každého hostitele ve vašem souboru inventáře.
2) Skupinová fakta: Tato fakta jsou přístupná pouze z konkrétní sady hostitelů nebo skupiny hostitelů.
3) Fakta o hostiteli: Tato fakta jsou přístupná pouze od konkrétního hostitele.

V tomto článku vám ukážu, jak pracovat s vlastními fakty 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.

Nastavení adresáře projektu:

Než začneme, vytvořme adresář projektu, abychom mohli uspořádat soubory projektu.

Chcete-li vytvořit adresář projektu vlastní fakta / ve vašem DOMOV adresáře, spusťte následující příkaz:

$ mkdir -pv custom-Facts / Playbooks, host_vars, group_vars

Nyní přejděte na vlastní fakta / adresář takto:

$ cd vlastní fakta /

Vytvořte konfigurační soubor Ansible zodpovědný.srov v adresáři projektu takto:

$ nanoodpovědný.srov

Do následujících řádků napište svůj zodpovědný.srov soubor.

[výchozí]
inventář = hostitelé
host_key_checking = False

Až budete hotovi, stiskněte + X následován Y a uložit zodpovědný.srov konfigurační soubor.

Nyní vytvořte Ansible inventární soubor hostitelé v adresáři projektu takto:

$ nano hostitelé

Napište následující řádky do hostitele inventární soubor.

vm1.nodekite.com
vm2.nodekite.com
[web]
vm3.nodekite.com
vm4.nodekite.com
[databáze]
vm [5: 6].nodekite.com

Až budete hotovi, stiskněte + X následován Y a uložit hostitelé inventární soubor.

Chcete-li zobrazit seznam všech dostupných hostitelů v souboru inventáře, spusťte následující příkaz:

$ ansible all --list-hosts

Jak vidíte, v inventáři mám šest hostitelů.

Seznam hostitelů dostupných v web skupiny souboru inventáře, spusťte následující příkaz:

$ ansible web --list-hosts

Jak vidíte, mám dva hostitele (vm3.nodekite.com a vm4.nodekite.com) v web skupina mého souboru inventáře.

Seznam hostitelů dostupných v databáze skupiny souboru inventáře, spusťte následující příkaz:

$ ansible database --list-hosts

Jak vidíte, mám dva hostitele (vm5.nodekite.com a vm6.nodekite.com) v databáze skupina mého inventárního souboru.

Práce s možnými globálními fakty:

V této části vám ukážu, jak definovat globální fakta / proměnné Ansible ve vašem souboru inventáře a jak k nim přistupovat ze svých Anbook playbooků. Ukážu vám také, jak definovat globální fakta / proměnné v samostatném souboru.

Nejprve otevřete hostitele soubor inventáře s následujícím příkazem:

$ nano hostitelé

Nyní přidejte označené řádky do svého hostitele inventární soubor. Až budete hotovi, stiskněte + X následován Y a soubor uložit.

''

Globální fakta přidáte do vše: vars sekce. Tady jsem přidal web_url globální fakt.

Nyní vytvořte nový scénář print_global_fact.yaml v knihy o hře / adresář takto:

$ nano playbooks / print_global_fact.yaml

Poté zadejte následující řádky do pole print_global_fact.yaml soubor.

- hostitelé: všichni
uživatel: odpovědný
úkoly:
- name: Vytiskne hodnotu globálního faktu 'web_url'
ladit:
msg: 'Web URL: web_url'

Účelem této příručky je vytisknout soubor web_url globální fakt.

Až budete hotovi, stiskněte + X následován Y a uložit print_global_fact.yaml soubor.

Nyní spusťte print_global_fact.yaml playbook takto:

$ ansible-playbook playbooks / print_global_fact.yaml

Jak vidíte, všichni hostitelé v mém souboru inventáře mají přístup ke globální skutečnosti web_url.

Globální fakta můžete také přidat do samostatného souboru. Tímto způsobem můžete udržovat čistý inventární soubor. Uvidíme, jak na to.

Nejprve odstraňte globální fakta z hostitele inventární soubor.

$ nano hostitelé

Nyní odeberte označené řádky ze souboru inventáře a stiskněte + X, následován Y a uložit soubor inventáře.

Poté vytvořte nový soubor Všechno v group_vars / adresář takto:

$ nano group_vars / vše

Chcete-li přidat globální fakt web_url, zadejte následující řádek do pole group_vars / all soubor.

web_url: https: // www.linuxhint.com

Až budete hotovi, stiskněte + X následován Y a uložit group_vars / all soubor.

Chcete-li zkontrolovat, zda máte přístup ke globální skutečnosti web_url, spustit print_global_fact.yaml playbook znovu takto:

$ ansible-playbook playbooks / print_global_fact.yaml

Jak vidíte, všichni hostitelé v mém souboru inventáře mají přístup ke globální skutečnosti web_url.

Práce s možnými fakty skupiny:

V této části vám ukážu, jak definovat fakta / proměnné skupiny Ansible ve vašem souboru inventáře a jak k nim přistupovat ze svých knih Ansible. Ukážu vám také, jak definovat skupinová fakta / proměnné v samostatném souboru.

Nejprve otevřete hostitele soubor inventáře s následujícím příkazem:

$ nano hostitelé

Pokud máte skupinu hostitelů skupina1, pak přidáte fakta / proměnné skupiny pro tuto skupinu hostitelů do a group1: vars část vašeho inventárního souboru.

[skupina1]

[group1: vars]
proměnná1 = hodnota1
proměnná2 = hodnota2

Například přidat skupinová fakta / proměnné doménové jméno a backend databáze pro web skupinu hostitelů, můžete zadat do označených řádků v souboru inventáře.

Až budete hotovi, stiskněte + X následován Y a uložit soubor inventáře.

Chcete-li vytisknout a otestovat, zda máme přístup ke skupinovým faktům, vytvořte novou příručku print_group_facts.yaml v knihy o hře / adresář takto:

$ nano playbooks / print_group_facts.yaml

Napište následující řádky do print_group_facts.yaml soubor.

- hostitelé: web
uživatel: odpovědný
úkoly:
- name: Vytisknout fakta o skupině
ladit:
msg: 'Domain Name: domain_name Database Backend: database_backend' '

Až budete hotovi, stiskněte + X následován Y a uložit print_group_facts.yaml soubor.

Nyní spusťte print_group_facts.yaml playbook takto:

$ ansible-playbook playbooks / print_group_facts.yaml

Jak vidíte, hostitelé v web skupina má přístup k souboru doménové jméno a backend databáze seskupit fakta / proměnné.

Nyní pojďme vyčistit soubor inventáře a uvidíme, jak přidat skupinová fakta / proměnné do samostatného souboru.

Nejprve otevřete hostitele soubor inventáře takto:

$ nano fakta

Odstraňte označené čáry z hostitele inventární soubor. Až budete hotovi, stiskněte + X následován Y a uložit hostitelé inventární soubor.

Jak přidáváme skupinové proměnné pro web hostitelská skupina, vytvořte nový soubor web (stejný jako název skupiny) v group_vars / adresář takto:

$ nano group_vars / web

Chcete-li přidat fakta o skupině doménové jméno a backend databáze pro web hostitelská skupina, přidejte následující řádky do souboru group_vars / web soubor.

název_domény: web.linuxhint.com
back_databáze: pgsql

Až budete hotovi, stiskněte + X následován Y a uložit group_vars / web soubor.

Chcete-li zkontrolovat, zda hostitelé v web skupina má přístup ke skupinovým faktům, spouští print_group_facts.yaml playbook takto:

$ ansible-playbook playbooks / print_group_facts.yaml

Jak vidíte, hostitelé v web skupina má přístup k souboru doménové jméno a backend databáze seskupit fakta / proměnné.

Práce s možnými fakty hostitele:

V této části vám ukážu, jak definovat fakta / proměnné hostitele Ansible v souboru inventáře a jak k nim přistupovat ze svých knih Ansible. Ukážu vám také, jak definovat fakta / proměnné hostitele v samostatném souboru.

Nejprve otevřete hostitele soubor inventáře s následujícím příkazem:

$ nano hostitelé

Fakta / proměnné hostitele můžete přidat za název DNS nebo IP adresu hostitele do souboru inventáře následujícím způsobem:

www.doména1.com variable1 = value1 variable2 = value2
192.168.22.2 proměnná1 = hodnota3 proměnná2 = hodnota4

Můžete například přidat fakta / proměnné hostitele doménové jméno a backend databáze pro hostitele vm3.nodekite.com a vm4.nodekite.com, jak je uvedeno na snímku obrazovky níže.

Všimněte si, že hodnota doménové jméno a backend databáze fakta / proměnné se u každého hostitele liší.

Jakmile přidáte fakta / proměnné hostitele, stiskněte + X, následován Y a uložit hostitele inventární soubor.

Protože jsem přidal stejná fakta / proměnné jako v příkladu skupiny fakta / proměnné, můžeme použít print_group_facts.yaml příručku, která také otestuje přístupnost těchto faktů / proměnných.

Spusťte print_group_facts.yaml playbook takto:

$ ansible-playbook playbooks / print_group_facts.yaml

Jak vidíte, fakta / proměnné hostitele jsou přístupné jejich určenému hostiteli. Hodnoty se také liší pro každého hostitele.

Protože každý z hostitelů je v samostatném řádku v mém souboru inventáře, mohl bych snadno přidat fakta / proměnné hostitele do mého souboru inventáře. Ale pokud použijete rozsahy k definování hostitelů v souboru inventáře, jak je označen na následujícím obrázku, nemůžete přidat taková fakta / proměnné hostitele.

Fakta / proměnné hostitele můžete přidat do samostatného souboru, stejně jako jste to udělali pro globální a skupinová fakta / proměnné.

Chcete-li přidat hostitelská fakta / proměnné pro vm5.nodekite.com hostitel, vytvořte nový soubor vm5.nodekite.com (stejný jako název DNS hostitele) v host_vars / adresář takto:

$ nano host_vars / vm5.nodekite.com

Můžete přidat fakta / proměnné hostitele db_port a název_db pro hostitele vm5.nodekite.com s následujícími řádky.

db_port: 3306
název_db: demo1

Až budete hotovi, stiskněte + X následován Y a uložit vm5.nodekite.com soubor.

Stejným způsobem přidáte fakta / proměnné hostitele pro hostitele vm6.nodekite.com, vytvořit nový soubor vm6.nodekite.com v host_vars / adresář takto:

$ nano host_vars / vm6.nodekite.com

Můžete přidat fakta / proměnné hostitele db_port a název_db pro hostitele vm6.nodekite.com s následujícími řádky.

db_port: 8877
název_db: app1

Až budete hotovi, stiskněte + X následován Y a uložit vm6.nodekite.com soubor.

Chcete-li vytisknout a otestovat, zda můžeme přistupovat k faktům / proměnným hostitele, vytvořte novou příručku print_host_facts.yaml v knihy o hře / adresář takto:

$ nano playbooks / print_host_facts.yaml

Nyní zadejte následující řádky do pole print_host_facts.yaml soubor.

- hostitelé: databáze
uživatel: odpovědný
úkoly:
- name: Vytisknout fakta o hostiteli
ladit:
msg: 'Název databáze: db_name Port databáze: db_port'

Až budete hotovi, stiskněte + X následován Y a uložit print_host_facts.yaml soubor.

Chcete-li zkontrolovat, zda je hostitel vm5.nodekite.com a vm6.nodekite.com může přistupovat k faktům / proměnným hostitele, spustit print_host_facts.yaml playbook takto:

$ ansible-playbook playbooks / print_host_facts.yaml

Jak vidíte, hostitelé vm5.nodekite.com a vm6.nodekite.com může přistupovat k název_db a db_port hostitelská fakta / proměnné.

Dáme to dohromady: Přednost možných skutečností

V této části budu hovořit o prioritě skutečnosti / proměnné Ansible. Pojďme tedy začít.

Než začneme, vyčistíme inventární soubor.

Otevři hostitele soubor inventáře s následujícím příkazem:

$ nano hostitelé

Odeberte označenou část ze souboru inventáře.

Takto by měl v tomto okamžiku vypadat váš soubor inventáře.

Nyní přidejte označený řádek do souboru inventáře. Tyto řádky přidávají globální fakta / proměnné faktický_obor a přístav.

Poté přidejte označené řádky do souboru inventáře. Tyto řádky přidávají faktický_obor a přístav fakta / proměnné pro hostitele v databáze skupina.

Nakonec přidejte faktický_obor a přístav hostitelská fakta / proměnné pro vm3.nodekite.com a vm4.nodekite.com hostitelé, jak je uvedeno na snímku obrazovky níže.

Až budete hotovi, stiskněte + X následován Y a uložit soubor inventáře.

Chcete-li vytisknout hodnotu globálních, skupinových a hostitelských faktů / proměnných, vytvořte novou příručku skutečnost_precedence.yaml v knihy o hře / adresář takto:

$ nano playbooks / fact_precedence.yaml

Napište následující řádky do skutečnost_precedence.yaml soubor.

- hostitelé: všichni
uživatel: odpovědný
úkoly:
- name: Vytisknout všechna fakta
ladit:
msg: 'Fact Scope: fact_scope Port: port'

Až budete hotovi, stiskněte + X následován Y a uložit fakt_precedence.yaml soubor.

Chcete-li vytisknout globální, skupinová a hostitelská fakta / proměnné, spusťte skutečnost_precedence.yaml playbook takto:

$ ansible-playbook playbooks / fact_precedence.yaml

Jak vidíte, jsou vytištěna globální, skupinová a hostitelská fakta / proměnné.

Všimněte si, že skupina faktů / proměnných nahradila globální fakta / proměnné (1). Všimněte si také, že hostitelská fakta / proměnné nahradila jak skupinová, tak globální fakta / proměnné (2).

Fakt / proměnná přednost Ansible je následující:

Hostitelský fakt> Skupinový fakt> Globální fakt

Závěr:

Po přečtení tohoto článku byste měli být schopni pohodlně pracovat s globálními, skupinovými a hostitelskými fakty / proměnnými Ansible. Nezapomeňte na prioritu vlastních skutečností Ansible. Pomůže vám snadněji ladit vaše hrací knížky Ansible.

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...