GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat a otestovat Ansible na Linuxu

Ansible je široce používaný nástroj pro správu konfigurace napsaný v jazyce Python, který pomáhá konfigurovat jeden nebo více strojů současně. Ansible lze použít k provádění níže uvedených úkolů

  • Od začátku konfigurace jednoho nebo více uzlů
  • Nasazení
  • Změny konfigurace
  • Záplatování
  • Správa služeb
  • a mnoho dalších

Ansible je široce používán kvůli své jednoduchosti. Ansible kód je napsán také v jazyce YAML, nevyžaduje instalaci agenta na vzdáleném počítači. Ansible používá port 22 (SSH) pro připojení ke vzdálenému počítači a provedení nezbytných změn.

Řídícím uzlem se může stát jakýkoli stroj, který se může připojit ke vzdálenému stroji na 22 portu. Řídicí uzel je místo, kde můžete nainstalovat Ansible a spravovaný uzel je spravován řídicími uzly.

Pojďme se podívat na instalaci Ansible na uzel řadiče.

Nainstalujte Ansible na CentOS 7: 

Protože Python je jediným předpokladem pro instalaci Ansible, nainstalujme Python provedením níže uvedeného příkazu.

$sudo yum install python3 -y

Chcete-li nainstalovat Ansible na CentOS 7, nejprve se ujistěte, že je nainstalováno úložiště CentOS 7 EPEL. Chcete-li nainstalovat úložiště epel, spusťte níže uvedený příkaz.

$sudo yum install epel-release

Aktualizujte index systémových balíčků provedením níže uvedeného příkazu update.

$sudo yum update -y

Jakmile je úložiště nainstalováno, nainstalujte Ansible pomocí správce balíčků yum. Spusťte níže uvedený příkaz a nainstalujte Ansible.

$sudo yum install ansible -y

Ověřte, zda je Ansible správně nainstalován a jeho verze.

$ansible -v

Instalace Ansible na CentOS 8:

Podívejme se na instalační kroky pro CentOS 8. Pojďme nainstalovat python na CentOS 8.

$sudo dnf install python3

Jakmile je python nainstalován, nainstalujme EPEL repo spuštěním níže uvedeného příkazu.

$sudo dnf install epel-release -y

Aktualizujte index systémových balíčků provedením níže uvedeného příkazu update.

$sudo dnf update -y

Nyní jsme připraveni nainstalovat Ansible. Spuštěním níže uvedeného příkazu nainstalujte Ansible.

$sudo dnf install ansible -y

Ověřte, zda je Ansible správně nainstalován a jeho verze.

$ansible -v

Instalovat Ansible na Ubuntu:

Python je dnes výchozím balíčkem ve většině distribucí Linuxu. Pokud nemáte nainstalovaný python, spusťte níže uvedený příkaz a nainstalujte balíček python.

$sudo apt-get install python3

Chcete-li nainstalovat Ansible v Ubuntu, nainstalujme nejprve úložiště provedením níže uvedeného příkazu.

$sudo apt-add-repository ppa:ansible/ansible

Aktualizujte index systémových balíčků provedením níže uvedeného příkazu update.

$sudo apt-get update -y

Nyní nainstalujte Ansible.

$sudo apt-get install -y ansible

Ověřte, zda je Ansible správně nainstalován a jeho verze.

$ansible -v

Instalovat Ansible s Python PIP na CentOS, Debian a Ubuntu:

Bez ohledu na to, jaký operační systém používáte, můžete Ansible nainstalovat pomocí instalačního programu balíčku python. Proveďme níže uvedený příkaz k instalaci python3-pip.

Pro CentOS 7 a nižší:

$sudo yum install python3 python3-pip -y

Pro CentOS 8:

$sudo dnf install python3 python3-pip -y

Pro Ubuntu a Debian:

$sudo apt-get install python3 python3-pip

Protože máme nainstalovaný python a pip, spusťte níže uvedený příkaz na libovolném operačním systému a nainstalujte Ansible.

$sudo pip3 install ansible

Ověřte, zda je Ansible správně nainstalován a jeho verze.

$ansible -v

Konfigurace hostitelů Ansible Controller:

Než budeme moci začít komunikovat s našimi ostatními uzly, musíme nejprve nastavit soubor „hosts“. Tento soubor bude mít všechny IP nebo názvy hostitelů spravovaných uzlů.

Poznámka :Pro připojení ke spravovaným uzlům není vždy nutné používat soubor hostitelů. Ale pokaždé musíme při provádění každého příkazu použít IP server spravovaného uzlu nebo název hostitele.

Vytvořte soubor (pokud tam ještě není) s právy root spuštěním následujícího příkazu:

$sudo touch /etc/ansible/hosts

Před zápisem do souboru se podívejme a porozumíme ukázkovému souboru hostitelů:

[group_name]
alias ansible_ssh_host=your_node_server_ip

Soubor hosts by měl odpovídat výše uvedené syntaxi. Pojďme se podívat na každý parametr.

[group_name] :Tento parametr vytvoří skupinu. Všechny IP adresy nebo názvy hostitelů spravovaného uzlu pod parametrem group_name budou spadat do stejné skupiny. Pokud máme například v naší infrastruktuře více webových serverů, můžeme sem přidat všechny IP adresy nebo názvy hostitelů spravovaného uzlu.

alias :Tento parametr se používá k přidělení aliasu serveru spravovaného uzlu k identifikaci serveru spravovaného uzlu. Pokud máme například v naší infrastruktuře více webových serverů, můžeme jako alias zadat hostitel1, hostitel2, hostitel3. Hlavní výhodou zadání aliasu je, když spustíme příkaz Ansible pro změnu konfigurace jednoho serveru, můžeme použít alias k identifikaci a provedení požadované úlohy na serveru.

ansible_ssh_host=ip_vašeho_uzlového_serveru :Tento parametr nasměruje alias na IP adresu spravovaného uzlu nebo název hostitele.

CentOS 8 budeme používat jako řízený uzel s Ansible. Jak je uvedeno výše, Ansible používá k připojení 22 portů vzdáleného hostitele.

Budeme předpokládat, že IP adresy serveru spravovaného uzlu CentOS jsou 192.168.0.2, 192.168.0.3 a 192.168.0.4.

Aby mohl uzel řadiče Ansible komunikovat se spravovanými uzly, musíme potvrdit, že spravované uzly jsou přístupné na portu 22, což je port SSH. Provedením níže uvedeného příkazu potvrďte připojení jeden po druhém na všech třech spravovaných uzlech z řadiče.

$ssh [email protected]192.168.0.2
$ssh [email protected]192.168.0.3
$ssh [email protected]192.168.0.4

Budete vyzváni k zadání hesla uživatele root všech uzlů. Ansible funguje velmi hladce, pokud máte mezi ovladačem Ansible a spravovanými uzly nakonfigurováno ověřování bez hesla. S různými parametry v příkazu Ansible může fungovat i ověřování heslem.

Protože jsme nakonfigurovali připojení ssh mezi řadičem Ansible a spravovanými uzly, nakonfigurujme soubor hosts tak, aby se připojoval ke všem spravovaným uzlům. Jak již bylo zmíněno, můžeme přidat více aliasů uzlového serveru do jedné skupiny. V tomto případě přidejte všechny tři uzly a přiřaďte alias jako hostitel1, hostitel2 a hostitel3. Náš soubor hostitelů by měl po přidání všech podrobností o spravovaném uzlu vypadat jako níže. Spusťte níže uvedený příkaz pro úpravu souboru hosts, který jsme vytvořili dříve.

Otevřete soubor s právy root provedením níže uvedeného příkazu:

$sudo vi /etc/ansible/hosts

Přidejme níže uvedenou konfiguraci do souboru hosts.

[node_servers]
host1 ansible_ssh_host=192.168.0.2
host2 ansible_ssh_host=192.168.0.3
host3 ansible_ssh_host=192.168.0.4

Zde jsme přidali všechny IP adresy a aliasy spravovaných uzlů ve skupině nazvané node_servers .

Zkusme se nyní připojit ke spravovaným uzlům z ovladače Ansible.

$ansible -m ping node_servers

Výše uvedený příkaz používá modul ping pro připojení ke skupině "node_servers", kterou jsme definovali v souboru hosts výše.

K chybám můžete narazit z různých důvodů.

  1. Pokud jste žádné nezadali, Ansible se ve výchozím nastavení pokusí připojit ke spravovanému uzlu pomocí vašeho aktuálního uživatelského jména. Pokud tento uživatel na serveru uzlu neexistuje, zobrazí se níže uvedená chyba.
  2. Pokud port ssh 22 není otevřený pro připojení na spravovaných uzlech. (Jak již bylo zmíněno dříve, Ansible se připojuje na ssh port)
  3. Pokud adresa IP v souboru hosts není správná.

Pokud některá z výše uvedených podmínek selže, objeví se níže uvedená chyba.

host1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host2 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host3 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

Řekněme konkrétně Ansible, že by se měl připojit ke spravovaným uzlům ve skupině „node_servers“ s uživatelem james. Vytvořte adresář group_vars, jak je uvedeno níže.

$sudo mkdir /etc/ansible/group_vars

Soubory v tomto adresáři se konkrétně používají ke konfiguraci proměnných, které můžeme použít v našich příručkách Ansible.

Vytvořme proměnný soubor pro naše nastavení provedením níže uvedeného příkazu:

$sudo vim /etc/ansible/group_vars/node_servers.yml


Přidejte níže uvedený kód do souboru:

---
ansible_ssh_user: james

YML soubor vždy začíná "---" na prvním řádku. Uložme a zavřeme tento soubor, až budete hotovi. Nyní bude Ansible vždy používat james uživatel pro skupinu node_servers, bez ohledu na aktuálního uživatele, kterého používáte ke spuštění příkazu.

Zkontrolujte připojení spravovaného uzlu:

Nyní, když máme nastavené hostitele a dostatek konfiguračních podrobností, abychom se mohli úspěšně připojit k našim spravovaným uzlům, můžeme vyzkoušet stejný příkaz, který jsme spustili dříve.

$ansible -m ping servers 

Ansible vrátí výstup takto:

host1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
host2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

host3 | ÚSPĚCH => {
    "změněno":nepravda,
    "ping":"pong"
}

Toto je základní test, který zajistí, že Ansible má připojení ke svým spravovaným uzlům.

Závěr: 

Pro spravované uzly není nutné používat operační systém CentOS. Můžete použít stejnou testovací konfiguraci, jakou jsme použili výše pro CentOS, RedHat, Ubuntu a jakékoli další distribuce Linuxu.


Linux
  1. Jak nainstalovat a používat Flatpak v Linuxu

  2. Jak nainstalovat a používat Traceroute v Linuxu

  3. Jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8

  1. Jak nainstalovat Elasticsearch a Kibana na Linux

  2. Jak nainstalovat Ansible na CentOS 8 Linux

  3. Jak nainstalovat Ansible na Oracle Linux 8

  1. Jak nainstalovat a nakonfigurovat Ansible na Redhat Enterprise Linux 8

  2. Jak nainstalovat a používat telnet na Kali Linux

  3. Jak nainstalovat a používat Linux Screen?