Ansible používá deklarativní jazyk k popisu požadovaného stavu systémů a automaticky zpracovává úkoly, které jsou potřebné k dosažení tohoto stavu.
Ansible používá SSH jako výchozí metodu připojení pro připojení k cílovému počítači. SSH poskytuje bezpečný a šifrovaný komunikační kanál mezi řídicím uzlem Ansible a cílovými hostiteli.
Obvykle je nejběžnější metodou konfigurace autentizace na základě klíče SSH pro cílového hostitele příkaz ssh-copy-id. Příkaz zkopíruje veřejný klíč řídicího uzlu do souboru „authorized_keys“ na cílovém hostiteli.
Když však konfigurujete systém poprvé, možná budete potřebovat Ansible, aby to provedl v playbooku. Zde přichází na pomoc komunita Ansible.
V komunitě Ansible máme přístup k roli ssh_id_copy, která nám umožňuje autorizovat systémy pro autentizaci SSH bez hesla.
Tato role se stará o nastavení klíčů SSH na vzdáleném počítači, což nám umožňuje vytvořit soubor inventáře Ansible se vzdáleným počítačem. Pak můžeme rychle zavolat jakoukoli Ansible playbook proti vzdálenému počítači.
Ansible role Ssh_Copy_Id
Role má proměnné, které umožňují Ansible konfigurovat klíče SSH na vzdáleném hostiteli. Mezi takové proměnné patří:
Název hostitele – Definuje vzdálený systém, ke kterému se má připojit (FQDN nebo IP).
Uživatelské jméno – Určuje uživatelské jméno pro připojení ke vzdálenému systému.
Heslo – Definuje heslo uživatelského jména pro připojení ke vzdálenému systému.
ssh_public_key – Definuje absolutní cestu k souboru veřejného klíče pro konfiguraci na vzdáleném hostiteli.
Přístav – Definuje port SSH.
Instalace role Ssh_Copy_Id
POZOR: Nemůžeme zajistit platnost a bezpečnost rolí a modulů řízených komunitou. Před použitím ve výrobě a na skutečných strojích zkontrolujte a ověřte fungování role/modulu. Při práci s kroky popsanými v tomto příspěvku není zaručena žádná bezpečnost.
Jak již bylo zmíněno, ssh_copy_id je role poskytovaná komunitou, kterou poskytuje Ryan. Odkaz na úložiště je uveden následovně:
https://github.com/ryankwilliams/ansible-ssh-copy-id
Než jej budeme moci použít, musíme se ujistit, že je nainstalován spuštěním následujícího příkazu:
$ ansible-galaxie Nainstalujte rywillia.ssh-copy-id
Příklad použití
Po instalaci můžeme roli použít v playbooku, jak je ukázáno v následujícím:
---- název : nakonfigurujte ověřování ssh bez hesla na vzdáleném počítači
hostitelé : localhost
stát se : Ano
role :
- role : ryankwilliams.ssh_copy_id
jehož :
název hostitele : 172.168.112.23
uživatelské jméno : ubuntu
Heslo : Heslo
ssh_public_key : /home/debian12/.ssh/id_rsa.pub
ssh_port : 22
Předchozí ukázková příručka ukazuje, jak použít roli k nastavení ověřování SSH bez hesla, uživatele, který je definován ve vzdáleném počítači.
Závěr
V tomto úvodním tutoriálu jste se naučili, jak můžete využít výhod rolí a modulů poskytovaných komunitou ke konfiguraci ověřování SSH bez hesla na vzdálených hostitelích pomocí příručky Ansible.