GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Ansible su Ubuntu

Ansible è uno strumento open source che consente di fornire, configurare, gestire e distribuire applicazioni. Aiuta a eseguire l'infrastruttura come codice, fondamentalmente uno strumento di automazione. Ansible funziona su sistemi Linux, simili a Unix e Windows. È uno strumento gratuito scritto in Python.

Utilizzando Ansible, l'automazione e il controllo di un gran numero di server sono semplificati. Ciò ha consentito all'amministratore di sistema o al tecnico DevOps di gestire tutti i server da un unico nodo di controllo.

A differenza di Chef e Puppet, Ansible non necessita di alcun software speciale da installare sui nodi. Ansible utilizza SSH per eseguire attività e il file YAML per definire le informazioni di fornitura.

Questo tutorial ti mostrerà come installare ansible su Ubuntu 20.04 e imparerai le basi.

Nodo di controllo Ansible e host

Ansible control nodes è un computer su cui è installato ansible e controlla uno o più host remoti. I nodi di controllo comunicano con host o nodi tramite SSH utilizzando strumenti da riga di comando o script di configurazione (playbook).

Gli host oi nodi gestiti sono dispositivi di rete o server gestiti da ansible. Ansible semplifica l'operazione utilizzando SSH, quindi le macchine host richiedono solo l'esecuzione del servizio SSH e l'apertura della porta.

Nella sezione seguente, impareremo come configurare un nodo di controllo e recuperare informazioni dagli host.

Requisiti

  • Un nodo di controllo con coppia di chiavi ssh
  • Uno o più host:server remoti con chiave pubblica ssh aggiunta

Per la dimostrazione, useremo una macchina Ubuntu 20.04 per entrambi gli scopi.

Installa Ansible su Ubuntu

I componenti Ansible vengono installati nel nodo di controllo. Il seguente comando per installare Ansible su Ubuntu.

Per prima cosa, ottieni un elenco aggiornato di tutti i pacchetti dalle loro fonti:

$ sudo apt update

Ora per installare ansible, digita:

$ sudo apt install ansible

Configura il nodo di controllo e gli host

Si consiglia di creare un utente non root con privilegi sudo nel nodo di controllo Ansible. Quindi imposta una coppia di chiavi SSH per quell'utente.

Crea un nuovo utente non root:

$ sudo adduser controller

Quindi, devi assegnare sudo autorizzazione al controller utente:

$ sudo usermod -aG sudo controller

Ora puoi accedere al controller sessione utente e generare una chiave SSH:

$ su - controller
$ ssh-keygen

Uscita:

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]-----+

Dobbiamo abilitare SSH senza password da Ansible Control Node a ciascun host. Fondamentalmente, dobbiamo copiare la chiave pubblica del nodo di controllo nel file authorized_keys su ciascun host.

In questo tutorial utilizzeremo due host ansible:host1@ip_address_1 e host2@ip_address_2 .

Sul nodo di controllo Ansible, esegui il comando seguente per copiare la chiave pubblica sui server host:

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

Impostazione del file di inventario

Ansible utilizza il inventory file per memorizzare informazioni sui server remoti (host) gestiti da Ansible Control Node. Gli host possono essere organizzati in gruppi o sottogruppi.

Il file di inventario ansible predefinito si trova in /etc/ansible/hosts , ma puoi creare il file di inventario in qualsiasi posizione e devi indicare il percorso del tuo file di inventario utilizzando -i parametro durante l'esecuzione di comandi Ansible.

Ora puoi aprire il file di inventario con il tuo editor preferito e modificarlo come segue:

$ sudo vim /etc/ansible/hosts

Nota che sostituisci gli IP sottostanti con gli indirizzi IP dei tuoi host Ansible.

[servers]
server1 ansible_host=178.0.113.111
server2 ansible_host=178.0.113.112

Verifica l'inventario con il seguente comando:

$ ansible-inventory --list -y

Uscita:

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

Test della connessione

È ora di verificare se Ansible può connettersi ai server remoti. Puoi usare il -u argomento per specificare l'utente remoto sui server. Ad esempio:

$ ansible all -m ping -u root

Il comando usa ansible ping modulo per verificare la connettività da Ansible Control Node ai server remoti.

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"
}

Quando ricevi un pong rispondi dai server remoti, puoi eseguire comandi e playbook ansible su quei server.

Esecuzione di un Ad-hoc comando su host ansible remoti, ad esempio:

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

Uscita:

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

Conclusione

Ansible è ora di proprietà di Redhat e apporta molti miglioramenti al codice. Ansible Tower è la versione aziendale di Ansible in cui puoi gestire i server da una moderna interfaccia utente basata sul Web.

In questo tutorial, hai imparato come installare ansible su Ubuntu e la configurazione di base attraverso esempi. Grazie per la lettura e per favore lascia il tuo suggerimento nella sezione commenti qui sotto.


Ubuntu
  1. Come installare e configurare Ansible su Ubuntu 20.04

  2. Come installare R su Ubuntu 20.04

  3. Come installare Vai su Ubuntu 18.04

  4. Come installare Ansible su Ubuntu Server 21.04

  5. Come installare Ansible su Ubuntu 18.04 LTS

Come installare Ansible su Ubuntu 16.04 (Xenial)

Come installare il pannello di controllo di HestiaCP su Ubuntu 20.4

Come installare Go in Ubuntu 20.04

Come installare Vai su Ubuntu 22.04

Come installare Ansible Server su Ubuntu 18.04

Come installare Ansible su Ubuntu 18.04