Zpět na blog

Instalace a konfigurace Ansible na Ubuntu 20.04

Instalace a konfigurace Ansible na Ubuntu 20.04

Pokud jste správcem systému, je důležité, abyste měli konzistentní způsob správy všech serverů a počítačů, které používáte. Systémy pro správu konfigurace mohou tento proces do značné míry zjednodušit. Efektivně spravují všechny systémy z jednoho centrálního místa.

Na Linux je k dispozici několik systémů pro správu konfigurace. Například Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine atd. Zatímco nástroje jako Puppet a Chef bývají složitější a pokročilejší, Ansible nabízí jednoduchost a snadné použití. Abyste mohli Ansible používat, nemusíte na uzly instalovat žádný další klientský software. Místo toho Ansible používá SSH ke správě a automatizaci systémů. Ansible je open-source software. Je také vysoce škálovatelný, konzistentní a spolehlivý.

Tento návod ukazuje, jak nainstalovat a nakonfigurovat Ansible na Ubuntu 20.04.

Ansible na Ubuntu

Ansible dokáže realizovat tři typy automatizace:

  • Provisioning: Může zprovoznit různé servery podle potřeb infrastruktury.

  • Configuration management: Může provádět různé změny konfigurace serverů. Například spouštění a zastavování služeb, instalaci aplikací a aktualizací, implementaci bezpečnostních zásad atd.

  • Application deployment: Usnadňuje DevOps díky automatizovanému nasazování interně vyvíjených aplikací do produkčního systému.

Ansible může perfektně fungovat v téměř jakémkoli IT prostředí – ať už jde o hostované nebo tradiční servery, virtualizační platformy nebo cloud. Podporuje také správu různých systémů, jako jsou databáze, sítě, firewally, úložná zařízení a mnoho dalších. CloudSigma také podporuje Ansible pro naši cloudovou infrastrukturu.

Prerequisites

Pro tento návod budeme potřebovat několik strojů:

  • Control node: Řídicí uzel je centrální uzel, který se připojuje ke všem hostitelským uzlům, zadává úkoly a spravuje různé aspekty systému. Řídicím uzlem může být cokoli – lokální stroj nebo vzdálený server.

  • Host node: Hostitelé Ansible jsou stroje, které může řídicí uzel Ansible automatizovat.

As the title of the guide suggests, all these machines are expected to be configured with Ubuntu 20.04 with the latest packages. Here’s a quick guide on setting up an Ubuntu server. Protože Ansible používá k připojení ke strojům SSH, musí mít všechny hostitelské uzly správně nastavené SSH klíče s řídicím uzlem. Ujistěte se, že všechny hostitelské uzly mají veřejný SSH klíč řídicího uzlu přidaný do authentication_keys souboru. Podle našeho návodu se dozvíte, how to generate and add SSH keys to Linux servers.

Krok 1: Instalace Ansible

V případě Ubuntu není potřeba žádná další konfigurace balíčků nebo repozitářů. Ansible je přímo dostupný z oficiálních serverů s balíčky pro Ubuntu. Provádění jakýchkoli změn na úrovni systému vyžaduje administrátorský přístup – uživatele root nebo uživatele bez oprávnění root s právy sudo. The sudoers file spravuje oprávnění sudo pro uživatele a skupiny.

Nejprve nainstalujeme Ansible na počítač, který bude sloužit jako řídicí uzel. Chcete-li nainstalovat Ansible na řídicí uzel, spusťte následující příkazy:

Control apt update

Install ansible

Pokud se chystáte použít heslo jako mechanismus ověřování SSH, musíte mít nainstalovaný balíček sshpass nainstalovaný:

Install sshpass

Krok 2: Konfigurace souboru inventáře

V Ansible obsahuje soubor inventáře informace o všech hostitelích, které bude Ansible spravovat. Může jít o desítky nebo stovky serverů registrovaných v inventárním souboru. Servery lze také rozdělit do skupin a podskupin. Obecně se inventární soubor používá k definování proměnných, které budou platné pouze pro konkrétní hostitele nebo skupiny. Je to užitečná technika při psaní playbooků a šablon. Určité proměnné mohou také ovlivnit způsob spuštění playbooku.

Ansible je dodáván s výchozím souborem inventáře. Nejprve otevřete tento soubor v textovém editoru:

Ansible hosts file

Ve výchozím nastavení obsahuje soubor inventáře různé příklady pro referenci. Zde je příklad se skupinou pojmenovanou servers obsahující tři různé servery. Proměnná ansible_python_interpreter definuje interpret Pythonu pro všechny hostitele zahrnuté v inventáři. Pomocí direktivy ansible_user, můžeme deklarovat uživatelský účet, ke kterému se Ansible připojí:

Ansible hosts file updated

Poté soubor uložte a zavřete editor. Chcete-li zkontrolovat inventář, spusťte následující příkaz:

Výstup by měl vypadat nějak takto:

Ansible inventory list

Krok 3: Testování připojení

Po nakonfigurování souboru inventáře musíme otestovat, zda se Ansible může k těmto serverům připojit přes SSH. Můžeme to provést jednoduše tak, že pingneme všechny hostitelské uzly. Z řídicího uzlu, pingněte všechny hostitelské uzly:

Modul ping kontroluje následující věci:

  • Dostupnost hostitele

  • Platnost přihlašovacích údajů SSH

  • Hostitelé mohou spouštět moduly Ansible pomocí Pythonu

Výstup by měl vypadat nějak takto:

Ansible ping all

Pokud je odpověď z konkrétního uzlu pong, znamená to, že uzel je připraven spouštět příkazy a playbooky Ansible na serveru.

Krok 4: Spouštění ad-hoc příkazů

Toto je volitelný krok. Může však být užitečný pro ověření plné funkčnosti Ansible na vzdálených serverech. Tato část může také sloužit jako základní úvod do dalšího používání a konfigurace Ansible. Jakmile potvrdíme připojení k uzlům, můžeme začít spouštět ad-hoc příkazy a playbooky. Jakýkoli příkaz, který byste běžně spouštěli na vzdálených serverech, lze pomocí Ansible spustit na všech serverech.

Zde spusťte následující příkaz. Zkontroluje využití disku na všech uzlech současně:

Ansible all df cmd

Pomocí funkce ad-hoc příkazů můžeme také spouštět různé moduly Ansible, stejně jako jsme spustili ping modul pro testování. Například modul apt pracuje se správcem balíčků APT v Ubuntu. Může spravovat balíčky na vzdáleném uzlu Ubuntu. Upozorňujeme, že k provádění změn na systémové úrovni vyžaduje oprávnění root. Vzdálený uzel musí povolit přihlášení uživatele root nebo uživatel musí mít oprávnění k provádění úloh správy.

V následujícím příkladu Ansible nainstaluje Nginx na všechny hostitelské uzly:

A co spouštění příkazů pouze na jednom serveru? K určení serveru použijeme přezdívku serveru (přiřazenou v souboru inventáře):

Adhoc cmd df selected host

Můžeme také specifikovat více serverů. Deklarujte přezdívku každého cílového serveru s dvojtečkou jako oddělovačem:

Adhoc cmd df multiple hosts

Závěrečné myšlenky

V této příručce jsme vám ukázali postup krok za krokem, jak nainstalovat Ansible a nakonfigurovat soubor inventáře pro spouštění ad-hoc příkazů z řídicího uzlu Ansible. Po nakonfigurování může řídicí uzel provést jakýkoli příkaz nebo playbook, který chcete na hostitelích spustit.

Příjemnou práci!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.