Toto je druhý článek v sérii využívající systémové role Ansible. V předchozím článku jsem vám představil Ansible a systémové role a uvedl několik příkladů. Systémové role vám pomáhají spravovat úlohy na úrovni OS, jako je SELinux, správa síťových nastavení, NTP atd. V tomto článku jste viděli příklad, kdy jste změnili režim SELinux pomocí system.role-selinux
role. V tomto článku se podrobně podívám na roli sítě, abyste mohli upravit síťová připojení vzdáleného počítače pomocí jediné příručky.
NetworkManager spravuje síťová nastavení, jako je konfigurace síťového rozhraní a připojení. V podstatě je to démon, který monitoruje a spravuje nastavení sítě. Používá soubor v /etc/sysconfig/network-scripts
uložit je. nmcli
je nástroj, který se používá k vytváření a úpravě souborů připojení z příkazového řádku. Chcete-li zobrazit seznam připojení vašeho místního počítače, použijte:
$ nmcli dev status
DEVICE TYPE STATE CONNECTION
eno0 ethernet connected eno0
eno1 ethernet disconnected ---
virbr0 bridge connected virbr0
Ve výše uvedeném výstupu můžete vidět různé sloupce. První sloupec, ZAŘÍZENÍ , označuje síťové rozhraní. TYPE sloupec ukazuje, o jaký typ připojení se jedná. STÁT sloupec označuje stav připojení a poslední sloupec CONNECTION , je kolekce nastavení, která lze pro zařízení nakonfigurovat. Každé připojení má název nebo ID, které jej identifikuje.
Chcete-li zobrazit seznam všech připojení, můžete použít:
$ nmcli con show
Pomocí nmcli
můžete přidat síťová připojení a přiřadit adresy IPv4 nebo IPv6 pro vytvoření síťových připojení. Jak však víte, chcete automatizovat manuální úlohy, které byste normálně dělali s nmcli
. Chcete spravovat síťové uzly pomocí Ansible playbooku.
V Ansible máte tři důležité moduly, které vám pomohou spravovat uzly:Služba, démon a nastavení systému. Tyto moduly můžete také použít ke správě sítí. V předchozím článku jsem diskutoval o systémových rolích Ansible. V systémových rolích máte rhel-system-roles.network
role, což je nejjednodušší způsob konfigurace a správy nastavení sítě na spravovaných uzlech.
Začněte pomocí tohoto síťového systému role pro konfiguraci nastavení sítě na spravovaném uzlu.
Zde máte server1.example.com
spravovaný stroj. Již jsem vytvořil záznam spravovaného uzlu v souboru inventáře.
Poznámka :Ujistěte se, že váš spravovaný uzel má dvě ethernetová připojení, protože přidává nové připojení. Toto druhé síťové rozhraní musí být dostupné.
Před provedením jakékoli operace se ujistěte, že je na spravovaném uzlu spuštěna a povolena služba NetworkManager. Udělejte to pomocí příručky. Pro tento úkol použijte servisní modul v service.yml
soubor.
---
- name: playbook for starting and enabling the NetworkManager
hosts: server1.example.com
tasks:
- Name: start the service
service:
name: NetworkManager
state: started
enabled: true
Spusťte tuto příručku:
$ ansible-playbook service.yml
Pokud se playbook spustí úspěšně bez jakýchkoli chyb, služba se spustí a povolí na počítači se spravovaným uzlem.
Název sekundárního rozhraní je eno1 takže můžete najít adresu MAC tohoto rozhraní. Protože používáte tuto MAC adresu, váš playbook zjistí sekundární rozhraní. Zobrazit MAC adresu eno1 pomocí:
$ ip a
MAC adresa server1.example.com
je 52:54:00:fe:2f:b8 . Použijte to v příručce.
Nyní, po servisní úloze, nainstalujte system-roles
na ovladači:
$ yum install rhel-system-roles
Tento příkaz nainstaluje všechny systémové role do výchozího adresáře role.
Nyní napište playbook pro přidání nového připojení na spravovaný uzel:
---
- name: playbook for configuring second interface
hosts: server1.example.com
vars:
target_mac: “52:54:00:fe:2f:b8”
network_connection:
- name: static-network
type: ethernet
mac: “{{ target_mac }}”
state: up
ip :
dhcp: no
address:
- 192.168.0.5/24
roles:
- rhel-system-roles.network
Toto je kompletní příručka. Vysvětlím vám každý parametr krok za krokem:
target_mac - Toto je MAC adresa druhého ethernetového rozhraní. To vám pomůže zjistit správné rozhraní na spravovaném uzlu.
síťové_připojení - Tato proměnná obsahuje informace o nových připojeních:
- name:název nového připojení
- typ:nový typ připojení
- mac:proměnná target_mac
- stav:aktivujte připojení pomocí
up
možnost - ip:deaktivujte možnost DHCP a přiřaďte IP adresu pomocí tohoto parametru
Použil jsem proměnné, které jsou nutné k provedení síťové systémové role. Nyní spusťte tuto příručku:
$ ansible-playbook networkconfiguration.yml
Tato příručka nakonfiguruje připojení k statické síti se statickou adresou IP.
Chcete-li zkontrolovat nastavení, přihlaste se na server1.example.com
a potvrďte nově přidané připojení:
$ nmcli connection show
NAME UUID TYPE DEVICE
eno0 adc52c70-… ethernet eno0
static-network 1be30687-… ethernet eno1
virbr0 0a9de672-… bridge virbr0
Zkuste ping
IP adresu statické sítě připojení, a pokud bude úspěšné, pak jste úspěšně přidali nové síťové připojení.
Pomocí ad hoc příkazů z řídicí jednotky zkontrolujte, zda bylo nové připojení úspěšně přidáno či nikoli:
$ ansible server1.example.com -m shell -a 'nmcli con show'
Tento příkaz vám zobrazí stejný výstup jako v předchozích krocích.
Sbalit
Tento článek ukazuje, že můžete konfigurovat síťová připojení pomocí systémových rolí Ansible. Tato malá příručka omezuje manuální úkoly a konfiguruje síťové připojení mnoha strojů najednou pouhým vytvořením skupiny hostitelů. Tyto systémové síťové role kontrolují mnoho parametrů při spouštění příručky, ověřují, zda je spuštěn NetworkManager, a testují připojení v samotné příručce. Toto je skvělý příklad toho, jak můžete použít systémové role k automatizaci konfigurací ve vašich systémech.