Ansible je bezplatný, open source a jeden z nejoblíbenějších nástrojů pro správu konfigurace. Jedná se o multiplatformní nástroj, který zjednodušuje cloud computing, správu konfigurace, instalaci balíčků a konfiguraci služeb. Používá soubor YAML, který obsahuje kroky, které chce uživatel spustit na konkrétním počítači. Pomocí Ansible můžete jediným příkazem konfigurovat a spravovat více než jen hostitele. Ansible je alternativou k ostatním nástrojům pro správu konfigurace, jako je Chef a Puppet.
V tomto článku vám ukážu, jak nainstalovat a používat nástroj pro správu konfigurace Ansible v Debianu 11.
Předpoklady
- Tři servery se systémem Debian 11.
- Na každém serveru je nakonfigurováno heslo uživatele root.
Pro účely tohoto tutoriálu použijeme následující nastavení:
- Ansible Controler – 192.168.10.9
- Hostitelé Ansible – 192.168.10.10, 192.168.10.11
Instalovat Ansible na Debian 11
Ve výchozím nastavení není balíček Ansible součástí výchozího úložiště Debianu. Existují dva způsoby, jak nainstalovat Ansible na Debian 11.
- Použití příkazu APT
- Použití příkazu PIP
Instalovat Ansible pomocí APT
Nejprve budete muset do vašeho systému nainstalovat některé závislosti. Požadované závislosti můžete nainstalovat pomocí následujícího příkazu:
apt-get install gnupg2 curl wget -y
Jakmile jsou všechny závislosti nainstalovány, upravte APT source.list a přidejte úložiště Ansible:
nano /etc/apt/sources.list
Přidejte následující řádek:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main
Po dokončení uložte a zavřete soubor, poté přidejte klíč Ansible GPG pomocí následujícího příkazu:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
Měli byste vidět následující výstup:
Upozornění:apt-key je zastaralý. Místo toho spravujte soubory klíčů v trusted.gpg.d (viz apt-key(8)). Spuštění:/tmp/apt-key-gpghome.lFEjztT9TY/gpg.1.sh --keyserver keyserver.ubuntu.com --recv- klíče 93C4A3FD7BB9C367gpg:klíč 93C4A3FD7BB9C367:veřejný klíč "Launchpad PPA for Ansible, Inc." importedgpg:Celkový počet zpracovaných:1gpg:importováno:1
Nyní aktualizujte úložiště a nainstalujte Ansible pomocí následujícího příkazu:
apt-get update
apt-get install ansible -y
Jakmile je Ansible nainstalován, ověřte verzi Ansible pomocí následujícího příkazu:
ansible --version
Měli byste získat následující výstup:
ansible 2.10.8 konfigurační soubor =Žádná nakonfigurovaná cesta pro hledání modulu =['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] umístění modulu ansible python =/usr/ lib/python3/dist-packages/ansible spustitelné umístění =/usr/bin/ansible verze pythonu =3.9.2 (výchozí, 28. února 2021, 17:03:44) [GCC 10.2.1 20210110]
Instalovat Ansible pomocí PIP
Nejprve budete muset nainstalovat Python a PIP do vašeho systému. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install python3 python3-pip -y
Po dokončení instalace použijte příkaz pip k instalaci Ansible, jak je znázorněno níže:
pip install ansible
Instalovat sshpass
Sshpass je nástroj příkazového řádku, který vám umožňuje zadat hesla pomocí příkazů SSH. Zde použijeme sshpass na uzlu ovladače Ansible s Ansible k ověření vzdáleného hostitele.
Sshpass můžete nainstalovat pomocí následujícího příkazu:
apt-get install sshpass -y
Dále se připojte k prvnímu dostupnému vzdálenému hostiteli a přidejte otisk SSH ke svým známým_hostitelům soubor:
ssh [e-mail chráněný]
Budete požádáni o zadání hesla SSH, jak je uvedeno níže:
Autentičnost hostitele „192.168.10.10 (192.168.10.10)“ nelze zjistit. Otisk klíče ECDSA je SHA256:q3zMoJ6qdjYvAdL7/w4Z0gm0ZEgGOB+rNIPKEMdYS6o.pokračujte v připojování[jste si jisti, že chcete ])? yesWarning:Trvale přidáno '192.168.10.10' (ECDSA) do seznamu známých hostitelů.Heslo:
Zadejte své heslo a stisknutím klávesy Enter přidejte otisk SSH.
Dále se připojte k druhému vzdálenému hostiteli a přidejte otisk SSH do svého souboruknown_hosts:
ssh [e-mail chráněný]
Budete požádáni o zadání hesla SSH, jak je uvedeno níže:
Autentičnost hostitele '192.168.10.11 (192.168.10.11)' nelze zjistit. Otisk klíče ECDSA je SHA256:q3zMoJ6qdjYvAdL7/w4Z0gm0ZEgGOB+rNIPKEMdYS6o.pokračujte v připojování[jste si jisti, že chcete. ])? anoUpozornění:Trvale přidáno '192.168.10.11' (ECDSA) do seznamu známých hostitelů.Heslo:
Zadejte své heslo a stiskněte Enter .
Nyní můžete k ověření připojení SSH použít příkaz sshpass:
sshpass -p vaše heslo ssh [chráněno e-mailem]
Vytvořit soubor inventáře Ansible Hosts
Dále budete muset vytvořit soubor inventáře k definování IP adresy, uživatelského jména, hesla a portu SSH vašich vzdálených hostitelů:
nano ~/.hosts
Přidejte následující řádky:
[servers]server1 ansible_host=192.168.10.10 ansible_user=root ansible_ssh_pass=heslo ansible_ssh_port=22server2 ansible_host=192.168.10.11 ansible_user=root ansible_ssh_sh_pass=presword ansible>Uložte a zavřete soubor.
Poznámka :Ve výše uvedeném souboru použijeme IP, uživatelské jméno, heslo a port SSH vzdálených hostitelů.
Práce s Ansible
Ansible poskytuje spoustu modulů, které vám pomohou spravovat vzdálené hostitele.
Základní syntaxe pro spuštění Ansible, jak je ukázáno níže:
ansible -i [soubor_inventáře] -m [modul] [hostitel]Pojďme ověřit připojení ping ke všem hostitelům:
ansible -i ~/.hosts -m ping allPokud je vše v pořádku, měli byste získat následující výstup:
server2 | ÚSPĚCH => { "ansible_facts":{ "discovered_interpreter_python":"/usr/bin/python3" }, "changed":false, "ping":"pong"}server1 | ÚSPĚCH => { "ansible_facts":{ "discovered_interpreter_python":"/usr/bin/python3" }, "changed":false, "ping":"pong"}Chcete-li ověřit připojení pomocí příkazu ping jediného serveru1, spusťte následující příkaz:
ansible -i ~/.hosts -m ping server1Měli byste získat následující výstup:
server1 | ÚSPĚCH => { "ansible_facts":{ "discovered_interpreter_python":"/usr/bin/python3" }, "changed":false, "ping":"pong"}Pro spouštění všech příkazů na vzdálených hostitelích můžete použít modul shell.
Chcete-li například spustit "free -m " na server2, spusťte následující příkaz:
ansible -i ~/.hosts -m shell -a "free -m" server2Měli byste vidět následující výstup:
server2 | ZMĚNĚNO | rc=0>> celkem využitý bezplatný sdílený buff/mezipaměť:1982 128 491 2 1363 1669Swap:0 0 0Chcete-li spustit příkaz df -h " commad na serveru2, spusťte následující příkaz:
ansible -i ~/.hosts -m shell -a "df -h" server2Měli byste získat následující výstup:
server2 | ZMĚNĚNO | rc=0>>Velikost souborového systému Použitá Avail Využití% Namontovaný onudev 976M 0 976M 0% /devtmpfs 199M 404K 198M 1% /run/dev/sda1 50G 2.4G 45G 5% /tmpfs 9292M shtm% sh092M.0 0 5,0 mil. 0 % /běh/locktmpfs 199 mil. 0 199 mil. 0 % /běh/uživatel/0Ansible poskytuje modul apt pro instalaci libovolného balíčku na vzdálené hostitele.
Chcete-li nainstalovat Nginx balíček na server1, spusťte následující příkaz:
ansible -i ~/.hosts -m ansible.builtin.apt -a "name=nginx state=present" server1Měli byste získat následující výstup:
server1 | CHANGED => { "ansible_facts":{ "discovered_interpreter_python":"/usr/bin/python3" }, "cache_update_time":1631424599, "cache_updated":false, "changed":true, "stderr":"", "stderr_line" ":[], "Upgradování binárního:nginx.", "Nastavení nginx (1.18.0-6.1) ...", "Zpracování spouštěčů pro man-db (2.9.4-2) ...", "Zpracování spouští pro libc-bin (2.31-13) ...“ ]}Chcete-li zkontrolovat stav služby Nginx na serveru1, spusťte následující příkaz:
ansible -i ~/.hosts -m shell -a "systemctl status nginx" server1Měli byste získat následující výstup:
server1 | ZMĚNĚNO | rc=0>>? nginx.service – vysoce výkonný webový server a reverzní proxy server Načteno:načteno (/lib/systemd/system/nginx.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od neděle 2021-09-12 05 :55:36 UTC; před 49 s Dokumenty:man:nginx(8) Proces:10761 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (kód=ukončeno, stav=0/ÚSPĚCH) Proces:10764 ExecStart=/usr/sbin/nginx -g démon zapnut; master_process on; (code=exited, status=0/SUCCESS) Hlavní PID:10871 (nginx) Úkoly:2 (limit:2341) Paměť:5,8M CPU:54ms CGroup:/system.slice/nginx.service ??10871 nginx:hlavní proces /usr/sbin/nginx -g démon zapnutý; master_process on; ??10874 nginx:worker processSep 12 05:55:36 ansible systemd[1]:Spuštění vysoce výkonného webového serveru a reverzního proxy serveru...Sep 12 05:55:36 ansible systemd[1]:nginx.service:Nepodařilo se analyzovat PID ze souboru /run/nginx.pid:Neplatný argumentSep 12 05:55:36 ansible systemd[1]:Spuštěno Vysoce výkonný webový server a reverzní proxy server.Ansible poskytuje uživatelský modul pro vytváření a správu uživatelů na vzdálených hostitelích.
Chcete-li vytvořit nového uživatele s názvem uživatel1 na server1 spusťte následující příkaz:
ansible -i ~/.hosts -m ansible.builtin.user -a "jméno=uživatel1 heslo=vaše heslo" server1Měli byste vidět následující výstup:
server1 | CHANGED => { "ansible_facts":{ "discovered_interpreter_python":"/usr/bin/python3" }, "changed":true, "comment":"", "create_home":true, "group":1000, "home ":"/home/user1", "name":"user1", "password":"NOT_LOGGING_PASSWORD", "shell":"/bin/sh", "state":"současnost", "system":false, "uid":1000}Závěr
V tomto článku jste se naučili, jak nainstalovat Ansible s APT a PIP. Také jste se naučili, jak používat různé moduly Ansible ke správě vzdálených hostitelů. Doufám, že nyní dostatečně rozumíte Ansible. Neváhejte se mě zeptat, pokud máte nějaké otázky.