Ansible slouží ke správě a administraci více serverů z centrálního počítače. Jedná se o nástroj pro správu serverů. Ansible nepotřebuje žádnou konfiguraci na straně serveru jako Chef nebo Puppet. Stačí Ansible nainstalovat do počítače a spravovat nebo administrovat servery přes SSH. Je velmi jednoduchý a snadno se používá. V tomto článku vám ukážu, jak nainstalovat a používat Ansible v systému CentOS 8. Začněme tedy.

Instalace Ansible:

Ansible je k dispozici v repozitáři EPEL systému CentOS 8. V repozitáři EPEL je také k dispozici aplikace Ansible. Ansible tedy můžete snadno nainstalovat do systému CentOS 8.

Nejprve aktualizujte mezipaměť úložiště balíčků DNF následujícím příkazem:

$ sudo dnf makecache

Nyní pro aktivaci úložiště EPEL nainstalujte balíček epel-release následujícím příkazem:

$ sudo dnf install epel-release

Pro potvrzení instalace stiskněte Y a poté <Enter>.

balíček epel-release by měl být nainstalován a úložiště EPEL by mělo být povoleno.

Nyní znovu aktualizujte mezipaměť úložiště balíčků DNF následujícím příkazem:

$ sudo dnf makecache

Nyní nainstalujte Ansible následujícím příkazem:

$ sudo dnf install ansible

Pro potvrzení instalace stiskněte Y a poté <Enter>.

DNF by měl začít stahovat všechny požadované balíčky z internetu.

Můžete být požádáni o přijetí klíče GPG úložiště EPEL. Stiskněte Y a poté stiskněte <Enter> pro jeho přijetí.

DNF by měl začít instalovat všechny stažené balíčky.

V tuto chvíli by měl být Ansible nainstalován.

Nyní spusťte následující příkaz:

$ ansible –version

Jak vidíte, mám spuštěnou Ansible 2.9.3 a funguje bez problémů.

Konfigurace serverů pro Ansible:

Pro správu nebo administraci serverů pomocí Ansible musíte mít na serverech nainstalovaný a spuštěný server SSH. Port SSH serverů musí být otevřený a servery by měly být přístupné z hostitele Ansible. To je jediný požadavek pro použití Ansible.

V tomto článku budu používat 4 virtuální počítače (VM) (2 VM Ubuntu Server 18.04 LTS a 2 VM Debian 10) pro demonstraci základů správy a administrace serverů pomocí Ansible.

Tyto 4 virtuální počítače jsou:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Adresy IP serverů můžete použít ke správě nebo administraci pomocí nástroje Ansible. Můžete také použít i názvy DNS serverů.

V tomto článku budu pro rozlišení IP adres virtuálních počítačů pomocí DNS používat soubor /etc/hosts.

Pokud chcete postupovat dále, otevřete soubor /etc/hosts pomocí textového editoru vi následujícím způsobem:

$ sudo vi /etc/hosts

Nyní přidejte řádky označené na obrázku níže a soubor uložte.

Nyní vygenerujte klíč SSH na hostiteli CentOS 8 Ansible následujícím způsobem:

$ ssh-keygen

Stiskněte <Enter>.

Stiskněte <Enter>.

Stiskněte <Enter>.

Měl by být vygenerován SSH klíč.

Nyní je třeba nahrát SSH klíč na všechny servery, které chcete pomocí Ansible spravovat.

Zkopírovat SSH klíč do vm1.linuxhint.local server, spusťte následující příkaz:

$ ssh-copy-id [email protected]

Nyní zadejte yes a stiskněte <Enter>.

Nyní zadejte přihlašovací heslo vm1.linuxhint.local VM a stiskněte <Enter>.

Klíč SSH by měl být zkopírován.

To samé proveďte pro server vm2.linuxhint.local, vm3.linuxhint.local a vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Po zkopírování klíče SSH do virtuálních počítačů, měli byste být schopni se k němu připojit pomocí SSH bez hesla, jak vidíte na obrázku níže.

Nyní spusťte následující příkaz na každém serveru, abyste umožnili přístup sudo bez hesla pro přihlášeného uživatele. To je nutné, aby Ansible mohla spouštět jakékoli příkazy roota.

$ echo „$(whoami) ALL=(ALL) NOPASSWD:ALL“. | sudo tee /etc/sudoers.d/$(whoami)

Všechny servery jsou nyní připraveny ke konfiguraci nebo správě z Ansible.

Používání Ansible:

Ansible uchovává seznam všech hostitelů, které spravuje, v souboru zvaném inventory file. Soubor inventáře Ansible je jen jednoduchý textový soubor.

Nejprve vytvoříme nový adresář projektu Ansible ~/ansible/ a poté vytvoříme náš soubor inventáře.

$ mkdir ~/ansible

Nyní přejděte do adresáře ~/ansible.

$ cd ~/ansible

Nyní vytvořte inventární soubor Ansible následujícím způsobem. Tento soubor můžete nazvat jakkoli. Já ho nazvu hosts.

$ vi hosts

Nyní můžete přidat servery následujícím způsobem. Zde se volba ansible_user používá k definování uživatele, kterého bude Ansible používat ke spouštění příkazů na těchto serverech. Obvykle je to přihlašovací uživatel serveru.

V inventárním souboru můžete také smíchat IP adresy a názvy DNS serverů.

Servery můžete také seskupit. Zde mám dvě skupiny, webserver a dbserver.

Ve skupině webserver jsem přidal servery vm1 a vm2. Ve skupině dbserver jsem přidal servery vm3 a vm4.

Po vytvoření inventárního souboru jej můžete použít pomocí volby -i programu Ansible.

Vypsat všechny hostitele z inventárního souboru můžete následujícím způsobem:

$ ansible -i hosts –list-hosts all

Zkontrolovat, zda jsou všichni hostitelé aktivní, můžete následujícím způsobem:

$ ansible -i hosts –list-hosts -m ping all

Jak vidíte, všichni hostitelé jsou aktivní.

Můžete také pingnout všechny hostitele v jedné skupině stejně.

$ ansible -i hosts –list-hosts -m ping webserver

Příkazy shellu můžete pomocí Ansible spouštět následujícím způsobem:

$ ansible -i hosts -m shell -a ‚command‘ <all|groupName>

Příkazy shellu (s právy sudo) můžete spouštět také následujícím způsobem.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚command‘ &lt;all
|groupName&gt;

Příklad můžete aktualizovat mezipaměť úložiště balíčků APT na hostitelích ve skupině webserver pomocí Ansible následujícím způsobem:

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚apt update‘ webserver

Jak vidíte, cache úložiště balíčků APT se aktualizuje pro všechny hostitele ve skupině webserver.

Zkusíme nainstalovat webový server Apache 2 na všechny hostitele skupiny webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a
‚apt install -y apache2‘ webserver

Webový server Apache by měl být nainstalován na všech hostitelích skupiny webserver.

Jak vidíte, webový server Apache funguje na všech hostitelích ve skupině webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚curl -sI
http://localhost‘ webserver

Stejným způsobem můžete spustit libovolný příkaz na všech hostitelích ve skupině dbserver.

$ ansible -i hosts -m shell -a ‚lsb_release -a‘ dbserver

Pro snadnější správu serverů můžete také použít Ansible Playbook. Ansible Playbook je mimo rozsah tohoto článku. Další informace o Ansible Playbook najdete v dokumentaci k Ansible.

Děkujeme, že jste si přečetli tento článek.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.