2022-08-12 13:40 Doba čtení: 8 min
Linux +1

Jak nainstalovat a nakonfigurovat Ansible na Ubuntu?

Zahajujeme práci s Ansible na Ubuntu pro efektivnější konfiguraci prostředí a správu nastavení.

Správa konfigurace představuje klíčovou etapu v životním cyklu DevOps. Umožňuje automatizovat a organizovat IT infrastrukturu.

Existuje řada nástrojů pro správu konfigurace, mezi něž patří například Puppet, Ansible, Chef a SaltStack. Ansible se řadí k nejoblíbenějším nástrojům v oblasti DevOps. Jeho schopností je snadná správa tisíců serverů a celé IT infrastruktury.

V tomto článku se zaměříme na následující témata:

  • Možnosti instalace
  • Výměna SSH klíčů
  • Konfigurace klienta
  • Ověřování funkčnosti

Možnosti instalace

Pro praktické účely zkusíme implementovat Ansible na dvou serverech. Jeden bude sloužit jako ansible-server a druhý jako ansible-client s přidělenými IP adresami:

  • ansible-server – 10.0.0.1
  • ansible-client – 10.0.0.25

Proces instalace je poměrně jednoduchý. Následující kroky je třeba provést na všech serverech, kde se má Ansible používat. V tomto případě na obou výše uvedených serverech.

  • Spusťte níže uvedený příkaz pro instalaci nezbytného softwaru pro instalaci Ansible.
[email protected]:~# apt install software-properties-common
  • Přidejte repozitář s balíčkem Ansible.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Aktualizujte nástroj pro správu balíčků (apt).
[email protected]:~# apt update
  • A konečně, spusťte příkaz pro samotnou instalaci.
[email protected]:~# apt install ansible

Instalace potřebného balíčku by měla trvat jen několik sekund.

Jak ověříte, že instalace proběhla v pořádku a jaká je verze Ansible?

Stačí použít parametr –version s příkazem ansible, jak je uvedeno níže.

[email protected]:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
[email protected]:~#

Jak je vidět, Ansible verze 2.8.1 je nainstalován a poskytuje důležité informace, jako je umístění konfiguračního souboru a modulu Python.

Následně je nutné provést výměnu SSH klíčů, aby server a klienti mohli vzájemně komunikovat.

Výměna SSH klíčů

Ansible komunikuje se svými klienty pomocí SSH (Secure Shell).

Nejprve na serveru ansible-server vytvoříme veřejný klíč, který pak zkopírujeme na ansible-client.

Ujistěte se, že jste přihlášeni jako uživatel root.

  • Vygenerujte klíč pomocí příkazu ssh-keygen, jak je ukázáno níže.
[email protected]:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
[email protected]:~#

Jak jste si všimli, veřejný klíč byl vytvořen ve složce .ssh. Celá cesta je /root/.ssh/id_rsa.pub

Poznámka: Ujistěte se, že soubory soukromého a veřejného klíče nejsou veřejně čitelné. Můžete si vypsat soubory a zkontrolovat jejich oprávnění.

cd /root/.ssh
[email protected]:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

Pokud zjistíte, že oprávnění je nesprávné, můžete ho změnit pomocí příkazu chmod.

Příklad:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Veřejný klíč zkopírujeme na Ansible hostitele, jehož IP adresa je 10.0.0.25.

[email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[email protected]:~/.ssh#

Ve výstupu je vidět, že 1 klíč byl úspěšně přidán. Tím pádem byla výměna SSH klíčů dokončena.

Dále přistoupíme ke konfiguraci klienta Ansible.

Konfigurace klienta Ansible

Předpokládám, že jste již provedli kroky instalace Ansible na klientském serveru, jak je popsáno v předchozích krocích.

Nastavení klienta, neboli hostitele, spočívá v informování Ansible serveru o existenci klientů. Provedete to takto:

  • Přihlaste se k serveru Ansible.
  • Přejděte do adresáře /etc/ansible.
  • Přidejte následující záznam do souboru hosts pomocí oblíbeného textového editoru.
[Client] 
node1 ansible_ssh_host=10.0.0.25

Ověření funkčnosti Ansible

Pokud jste provedli všechny kroky správně, obdržíte zprávu SUCCESS, když spustíte následující příkaz na serveru ansible-server.

[email protected]:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
[email protected]:~/.ssh#

Výše uvedený příkaz odešle ping na klienta a otestuje konektivitu, čímž ověří, zda je vše v pořádku.

Závěr

Doufám, že tento návod vám poskytl základní představu, jak začít s instalací a používáním Ansible. Sledujte další tutoriály o Ansible nebo se můžete podívat na kurz Mastering Ansible na Udemy.

Jan Novák
Autor
Czechia

Redaktor zaměřený na Windows, produktivitu a cloudové nástroje.

Předchozí článek
Oprava konektoru pro sluchátka nefunguje ve Windows 10
Další článek
11 nejlepších cloudových ovládacích panelů pro správu serverů a webových stránek