GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Ansible sur Ubuntu

Ansible est un outil open source qui vous permet de provisionner, configurer, gérer et déployer des applications. Il aide à exécuter l'infrastructure en tant que code, essentiellement un outil d'automatisation. Ansible fonctionne sur les systèmes Linux, de type Unix et Windows. C'est un outil gratuit écrit en Python.

En utilisant Ansible, l'automatisation et le contrôle d'un grand nombre de serveurs sont simplifiés. Cela a permis à l'administrateur système ou à l'ingénieur DevOps de gérer tous les serveurs à partir d'un seul nœud de contrôle.

Contrairement à Chef et Puppet, Ansible n'a besoin d'aucun logiciel spécial pour être installé sur les nœuds. Ansible utilise SSH pour exécuter les tâches et le fichier YAML pour définir les informations de provisionnement.

Ce tutoriel vous montrera comment installer ansible sur Ubuntu 20.04 et apprendre les bases.

Nœud de contrôle Ansible et hôtes

Les nœuds de contrôle Ansible sont un ordinateur sur lequel ansible est installé et contrôle un ou plusieurs hôtes distants. Les nœuds de contrôle communiquent avec les hôtes ou les nœuds via SSH à l'aide d'outils de ligne de commande ou de scripts de configuration (playbooks).

Les hôtes ou les nœuds gérés sont des périphériques réseau ou des serveurs gérés par ansible. Ansible simplifie l'opération en utilisant SSH, de sorte que les machines hôtes nécessitent uniquement l'exécution du service SSH et l'ouverture du port.

Dans la section suivante, nous apprenons à configurer un nœud de contrôle et à récupérer des informations auprès des hôtes.

Exigences

  • Un nœud de contrôle avec une paire de clés ssh
  • Un ou plusieurs hôtes - serveurs distants avec clé publique ssh ajoutée

Pour la démonstration, nous utiliserons une machine Ubuntu 20.04 aux deux fins.

Installer Ansible sur Ubuntu

Les composants Ansible sont installés sur le nœud de contrôle. La commande suivante pour installer Ansible sur Ubuntu.

Tout d'abord, obtenez une liste mise à jour de tous les packages à partir de leurs sources :

$ sudo apt update

Maintenant, pour installer ansible, tapez :

$ sudo apt install ansible

Configurer le nœud de contrôle et les hôtes

Il est recommandé de créer un utilisateur non root avec des privilèges sudo sur le nœud de contrôle Ansible. Configurez ensuite une paire de clés SSH pour cet utilisateur.

Créez un nouvel utilisateur non root :

$ sudo adduser controller

Ensuite, vous devez attribuer sudo autorisation au controller utilisateur :

$ sudo usermod -aG sudo controller

Maintenant, vous pouvez vous connecter au controller session utilisateur et générer une clé SSH :

$ su - controller
$ ssh-keygen

Sortie :

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

Nous devons activer SSH sans mot de passe depuis Ansible Control Node vers chaque hôte. Fondamentalement, nous devons copier la clé publique du nœud de contrôle dans le fichier authorized_keys sur chaque hôte.

Dans ce tutoriel, nous utiliserons deux hôtes ansible :host1@ip_address_1 et host2@ip_address_2 .

Sur le nœud de contrôle Ansible, exécutez la commande suivante pour copier la clé publique sur les serveurs hôtes :

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

Configuration du fichier d'inventaire

Ansible utilise le inventory file pour stocker des informations sur les serveurs distants (hôtes) gérés par Ansible Control Node. Les hôtes peuvent être organisés en groupes ou sous-groupes.

Le fichier d'inventaire ansible par défaut se trouve dans /etc/ansible/hosts , mais vous pouvez créer le fichier d'inventaire à n'importe quel endroit et vous devez indiquer le chemin d'accès à votre fichier d'inventaire en utilisant le -i paramètre lors de l'exécution de commandes Ansible.

Maintenant, vous pouvez ouvrir le fichier d'inventaire avec votre éditeur préféré et le modifier comme suit :

$ sudo vim /etc/ansible/hosts

Notez que remplacez les adresses IP ci-dessous par les adresses IP de vos hôtes Ansible.

[servers]
server1 ansible_host=178.0.113.111
server2 ansible_host=178.0.113.112

Vérifiez l'inventaire à l'aide de la commande suivante :

$ ansible-inventory --list -y

Sortie :

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

Tester la connexion

Il est temps de vérifier si Ansible peut se connecter aux serveurs distants. Vous pouvez utiliser le -u argument pour spécifier l'utilisateur distant sur les serveurs. Par exemple :

$ ansible all -m ping -u root

La commande utilise ansible ping module pour vérifier la connectivité entre Ansible Control Node et les serveurs distants.

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

Lorsque vous recevez un pong réponse depuis les serveurs distants, vous pouvez exécuter des commandes ansibles et des playbooks sur ces serveurs.

Exécution d'un Ad-hoc commande sur des hôtes ansibles distants, par exemple :

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

Sortie :

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

Conclusion

Ansible appartient maintenant à Redhat et apporte de nombreuses améliorations au code. Ansible Tower est la version d'entreprise d'Ansible où vous pouvez gérer des serveurs à partir d'une interface utilisateur Web moderne.

Dans ce tutoriel, vous avez appris à installer ansible sur Ubuntu et la configuration de base à travers des exemples. Merci d'avoir lu et s'il vous plaît laissez votre suggestion dans la section des commentaires ci-dessous.


Ubuntu
  1. Comment installer et configurer Ansible sur Ubuntu 20.04

  2. Comment installer R sur Ubuntu 20.04

  3. Comment installer Go sur Ubuntu 18.04

  4. Comment installer Ansible sur Ubuntu Server 21.04

  5. Comment installer Ansible sur Ubuntu 18.04 LTS

Comment installer Ansible sur Ubuntu 16.04 (Xenial)

Comment installer le panneau de configuration HestiaCP sur Ubuntu 20.4

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04

Comment installer Ansible Server sur Ubuntu 18.04

Comment installer Ansible sur Ubuntu 18.04