Konfigurace a nasazení aplikací na jednom serveru je obvykle jednoduchý úkol. Ve složitém IT prostředí s více servery to však může být skličující a časově náročný úkol. Ansible, vyvinutý a spravovaný společností RedHat, je open-source nástroj pro konfiguraci serveru a poskytování softwaru, který zjednodušuje nasazení aplikací a správu konfigurace. Zvedá váhu provozních týmů IT a automatizuje konfiguraci serverů a nasazování aplikací jednoduchým a efektivním způsobem.
Ve srovnání se svými protějšky, jako je kuchař a loutka, je Ansible nejpoužívanějším nástrojem, protože nevyžaduje, aby agent komunikoval se vzdálenými hostiteli. Ansible využívá protokol SSH ke komunikaci se vzdálenými cíli a přitom zůstávají zdroje CPU vzdálených hostitelů nedotčeny.
Nastavení Ansible Lab
Pro naše testovací prostředí máme dva uzly:řídicí uzel, kde bude nainstalován Ansible, a vzdálený hostitel, který bude nakonfigurován z řídicího uzlu Ansible:
Kontrolní uzel Ansible IP 192.168.2.101 Ubuntu 20.04
Vzdálený hostitel IP 192.168.2.104 Ubuntu 20.04
Dále se ujistěte, že máte uživatele sudo nakonfigurován na řídicím uzlu Ansible a že démon SSH běží na obou uzlech.
Bez dalších okolků se pojďme dotknout základny, jak nainstalovat Ansible na Ubuntu 20.04
Krok 1:Nainstalujte Ansible
Hned zkraje se přihlaste na hlavní server Ansible a nainstalujte Ansible jako uživatele sudo následovně.
$ sudo apt install ansible
To nainstaluje Ansible spolu s řadou balíčků Python3, které jsou nezbytné pro bezproblémový běh Ansible.
Po instalaci můžete potvrdit verzi Ansible, jak je uvedeno.
Výstup poskytuje některé rozsáhlé informace. Zobrazuje verzi Ansible – v tomto případě Ansible 2.9.6 – modul a cestu ke spustitelnému souboru Ansible a také verzi Pythonu nainstalovanou ve vašem systému.
Konfigurační soubor – ansible.cfg – je konfigurační soubor Ansible umístěný v /etc/ansible adresář. Nastavení určují, jak Ansible běží a jak komunikuje se vzdálenými klienty. Adresář navíc obsahuje soubor inventáře s názvem hosts. Zde jsou definováni vzdálení nebo spravovaní hostitelé. Zatímco se v tomto tutoriálu protahujeme, definujeme vzdáleného hostitele v tomto souboru inventáře.
Krok 2:Nastavte přihlášení SSH bez hesla
Protokol SSH poskytuje dva způsoby ověřování:heslo a ověřování veřejným/soukromým klíčem. Pomocí klíčů SSH nastavíme metodu přihlašování ssh bez hesla, abychom poskytli bezpečnější a pohodlnější způsob interakce se vzdáleným hostitelem. Přihlašovací metoda SSH bez hesla poskytuje bezproblémový způsob interakce s hostitelem, protože při spouštění souborů playbooku nebudeme muset zadávat heslo.
Chcete-li nastavit přihlašování SSH bez hesla, nejprve vygenerujeme pár klíčů SSH, jak je znázorněno:
$ ssh-keygen
Úplným stisknutím ENTER přijmete výchozí návrhy.
Pár klíčů SSH obsahuje soukromý a veřejný klíč. Máme id_rsa což je soukromý klíč. Také máme id_rsa.pub což je veřejný klíč.
Dále zkopírujeme veřejný klíč do vzdáleného hostitele pomocí uživatele root jako uživatele vzdáleného hostitele.
POZNÁMKA
Před zkopírováním souboru veřejného klíče ssh nakonfigurujeme vzdáleného uživatele v konfiguračním souboru Ansible, jak je znázorněno.
$ sudo vim /etc/ansible/ansible.cfg
Nastavte vzdáleného uživatele na root.
remote_user=root
Uložte soubor.
Dále přejděte ke vzdálenému hostiteli a povolte vzdálené přihlášení root úpravou /etc/ssh/ssh_config soubor.
$ sudo vim /etc/ssh/ssh_config
Připojte řádek níže
PermitRootLogin yes
Znovu uložte a ukončete.
Nyní můžeme pokračovat a zkopírovat veřejný klíč SSH na vzdálený hostitel, jak je znázorněno.
$ ssh-copy-id [email protected]
Pokud se přihlašujete poprvé jako uživatel root, zobrazí se výzva, jak je znázorněno na obrázku níže. Jednoduše zadejte „ano“ a pokračujte v připojení. Jakmile poskytnete root heslo vzdáleného hostitele, klíč SSH bude přidán do kořenového domovského adresáře.
Pro další přihlášení nebudete muset zadávat heslo. Chcete-li to ověřit, ukončete vzdálený hostitel a zkuste se přihlásit ještě jednou.
$ ssh [email protected]
Tím se automaticky dostanete do shellu vzdáleného hostitele, jak je znázorněno.
Perfektní! Naše nastavení přihlašování SSH bez hesla je dokončeno. Nyní vytvoříme soubor playbooku, který nainstaluje webový server Apache.
Krok 3:Přidejte vzdáleného hostitele do konfiguračního souboru Ansible
Dále definujeme našeho vzdáleného hostitele v souboru inventáře Ansible, což je ve výchozím nastavení /etc/ansible/hosts soubor. Otevřete tedy soubor.
$ sudo vim /etc/ansible/hosts
Soubor hostuje je strukturován ve formátu INI. Do webových serverů přidáme IP adresu našeho hostitele název skupiny.
[webservers]
192.168.2.104
Uložte soubor inventáře a zavřete. Chcete-li ověřit hostitele definované v souboru inventáře, spusťte:
$ ansible webservers --list-hosts
Případně pro kontrolu všech hostitelů ve všech skupinách hostitelů spusťte:
$ ansible all --list-hosts
Nyní otestujeme přítomnost modulu Ansible Python na vzdáleném hostiteli.
$ ansible -m ping webservers
POZNÁMKA:
ping modul není ICMP příkaz ping. Je to jen triviální test, který zkontroluje, zda je nainstalován modul Python3 a přítomnost SSH.
Níže uvedený výstup ukazuje, že příkaz byl úspěšný. Výstup také zobrazuje IP vzdáleného hostitele definovaného pod webovými servery skupina. Pokud máte více hostitelů definovaných v několika skupinách, použijte všichni možnost.
$ ansible -m ping all
Krok 4:Vytvořte soubor playbooku pro konfiguraci vzdáleného hostitele
S definovaným vzdáleným hostitelem nyní vytvoříme soubor playbooku pro instalaci webového serveru Apache. Soubor playbooku je soubor YAML v Ansible, který stanoví úkoly, které mají být provedeny na vzdáleném hostiteli.
$ sudo vim /etc/ansible/apache.yml
Soubor playbooku je definován níže. Všimněte si, že soubor začíná 3 pomlčkami ( — ). Všimněte si také odsazení.
Nakonec spusťte soubor playbook následovně.
$ ansible-playbook /etc/ansible/apache.yml
Během běhu provádí playbook úkoly pečlivě a zobrazuje každou akci na terminálu. Nainstaluje webový server Apache a spustí službu.
Chcete-li potvrdit, že webový server byl úspěšně nainstalován, spusťte prohlížeč a procházejte IP vzdáleného hostitele, jak je znázorněno:
http://server-ip/
Shrnutí
Ansible je široce používaný automatizační nástroj v DevOps a používají jej tisíce vývojářů a systémových administrátorů ke konfiguraci a nasazení aplikací na serverech. Šetří čas a minimalizuje úsilí potřebné pro obsluhu velkého množství serverů v komplexní IT infrastruktuře. Doufáme, že si můžete pohodlně nainstalovat a nakonfigurovat Ansible na Ubuntu 20.04.