GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Ansible na Ubuntu

Ansible je nástroj s otevřeným zdrojovým kódem, který vám umožňuje zajišťovat, konfigurovat, spravovat a nasazovat aplikace. Pomáhá provozovat infrastrukturu jako kód, v podstatě automatizační nástroj. Ansible běží na systémech Linux, Unix a Windows. Je to bezplatný nástroj napsaný v Pythonu.

Použitím Ansible je automatizace a ovládání velkého množství serverů zjednodušeno. To umožnilo správci systému nebo inženýrovi DevOps spravovat všechny servery z jednoho řídicího uzlu.

Na rozdíl od Chef and Puppet nepotřebuje Ansible na uzly instalovat žádný speciální software. Ansible používá SSH k provádění úloh a soubor YAML k definování informací o poskytování.

Tento tutoriál vám ukáže, jak nainstalovat ansible na Ubuntu 20.04 a naučit se základy.

Ansible Control Node and Hosts

Ansible control nodes je počítač, který má nainstalovaný ansible a řídí jeden nebo více vzdálených hostitelů. Řídicí uzly komunikují s hostiteli nebo uzly přes SSH pomocí nástrojů příkazového řádku nebo konfiguračních skriptů (playbooků).

Hostitelé nebo spravované uzly jsou síťová zařízení nebo servery, které ansible spravuje. Ansible zjednodušuje operaci pomocí SSH, takže hostitelské počítače vyžadují pouze spuštěnou službu SSH a otevřený port.

V následující části se naučíme, jak nastavit řídicí uzel a získávat informace z hostitelů.

Požadavky

  • Jeden ovládací uzel s párem klíčů ssh
  • Jeden nebo více hostitelů – vzdálené servery s přidaným veřejným klíčem ssh

Pro demonstraci použijeme počítač Ubuntu 20.04 pro oba účely.

Nainstalujte Ansible na Ubuntu

Ansible komponenty jsou instalovány na řídicím uzlu. Následující příkaz k instalaci Ansible na Ubuntu.

Nejprve získejte aktualizovaný seznam všech balíčků z jejich zdrojů:

$ sudo apt update

Nyní pro instalaci ansible zadejte:

$ sudo apt install ansible

Nastavení řídicího uzlu a hostitelů

Doporučuje se vytvořit uživatele bez oprávnění root s právy sudo na ovládacím uzlu Ansible. Poté pro tohoto uživatele nastavte pár klíčů SSH.

Vytvořte nového uživatele bez oprávnění root:

$ sudo adduser controller

Poté musíte přiřadit sudo oprávnění pro controller uživatel:

$ sudo usermod -aG sudo controller

Nyní se můžete přihlásit k controller uživatelskou relaci a vygenerujte klíč SSH:

$ su - controller
$ ssh-keygen

Výstup:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/controller/.ssh/id_rsa): 
Created directory '/home/controller/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/controller/.ssh/id_rsa
Your public key has been saved in /home/controller/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:R033P2ygbVuZv5jJdRbIZtaPG8Af7ZFL2pE9vbzQgP0 controller@linoxide
The key's randomart image is:
+---[RSA 3072]----+
|            . .  |
|           o . . |
|          . ..  .|
|         . .* =.O|
|        S .oo@.^=|
|         .  =o%+@|
|             ++E*|
|            . *++|
|             =.o |
+----[SHA256]-----+

Musíme povolit SSH bez hesla z Ansible Control Node pro každého hostitele. V podstatě musíme zkopírovat veřejný klíč řídicího uzlu do souboru autorizovaných klíčů na každém hostiteli.

V tomto tutoriálu použijeme dva dostupné hostitele:host1@ip_address_1 a host2@ip_address_2 .

V řídicím uzlu Ansible spusťte následující příkaz pro zkopírování veřejného klíče na hostitelské servery:

$ ssh-copy-id host1@ip_address_1
$ ssh-copy-id host2@ip_address_2

Nastavení souboru inventáře

Ansible používá inventory file k ukládání informací o vzdálených serverech (hostitelích) spravovaných Ansible Control Node. Hostitelé mohou být organizováni do skupin nebo podskupin.

Výchozí soubor inventáře ansible je umístěn v /etc/ansible/hosts , ale soubor inventáře můžete vytvořit v libovolném umístění a musíte zadat cestu k souboru inventáře pomocí -i parametr při spouštění příkazů Ansible.

Nyní můžete otevřít soubor inventáře pomocí svého oblíbeného editoru a upravit jej následovně:

$ sudo vim /etc/ansible/hosts

Upozorňujeme, že níže uvedené adresy IP nahraďte IP adresami svých hostitelů Ansible.

[servers]
server1 ansible_host=178.0.113.111
server2 ansible_host=178.0.113.112

Ověřte inventář následujícím příkazem:

$ ansible-inventory --list -y

Výstup:

all:
  children:
    servers:
      hosts:
        server1:
          ansible_host: 178.0.113.111
        server2:
          ansible_host: 178.0.113.112
    ungrouped: {}

Testování připojení

Je čas zkontrolovat, zda se Ansible může připojit ke vzdáleným serverům. Můžete použít -u argument k určení vzdáleného uživatele na serverech. Například:

$ ansible all -m ping -u root

Příkaz použije ansible ping modul pro kontrolu připojení z Ansible Control Node ke vzdáleným serverům.

server1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
server2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Když obdržíte pong odpovědět ze vzdálených serverů, můžete na těchto serverech spouštět dostupné příkazy a playbooky.

Spuštění Ad-hoc příkaz na vzdálených ansible hostitelích, například:

$ ansible all -a "df -h" -u root

Výstup:

server1 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  2.3M  744M   1% /run
/dev/sda1        20G  4.7G   15G  25% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop1      130M  130M     0 100% /snap/google-cloud-sdk/161
/dev/loop0       32M   32M     0 100% /snap/snapd/10238
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001
server2 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  1.7M  745M   1% /run
/dev/sda1        20G  4.2G   16G  22% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop0       56M   56M     0 100% /snap/core18/1932
/dev/loop1       32M   32M     0 100% /snap/snapd/10492
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001

Závěr

Ansible je nyní ve vlastnictví Redhat a přináší spoustu vylepšení kódu. Ansible Tower je podniková verze Ansible, kde můžete spravovat servery z moderního webového uživatelského rozhraní.

V tomto tutoriálu jste se pomocí příkladů naučili, jak nainstalovat ansible na Ubuntu a základní nastavení. Děkujeme za přečtení a zanechte prosím svůj návrh v sekci komentářů níže.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Ansible na Ubuntu 20.04

  2. Jak nainstalovat Ansible na Ubuntu Server 21.04

  3. Jak nainstalovat Ansible na Ubuntu 18.04 LTS

  1. Jak nainstalovat R na Ubuntu 20.04

  2. Jak nainstalovat Go na Ubuntu 18.04

  3. Jak nainstalovat R na Ubuntu 18.04

  1. Jak nainstalovat Ansible AWX na Ubuntu 20.04 LTS

  2. Jak nainstalovat Ansible na Ubuntu 20.04 LTS / 21.04

  3. Jak nainstalovat Ansible AWX 17.1.0 na Ubuntu 20.04