L’automatisation s’impose comme l’une des approches les plus efficaces pour gérer les mises à jour de vos systèmes Linux. En optant pour un mécanisme automatisé, vous vous assurez que les mises à jour sont appliquées de manière systématique et régulière. Si votre infrastructure comprend plusieurs serveurs Ubuntu, l’utilisation d’Ansible pour automatiser les mises à jour constitue une excellente solution. Cela vous permet d’installer les dernières versions des mises à jour sur vos serveurs distants et de mettre à jour les packages de manière efficace. Découvrons comment utiliser Ansible pour mettre à jour Ubuntu, garantissant ainsi l’intégration des dernières fonctionnalités et des mises à jour de sécurité.

Qu’est ce que Ansible

Ansible se positionne comme un outil de gestion de configuration prisé dans le domaine DevOps, réputé pour sa gratuité et son caractère open source. C’est une solution particulièrement intuitive et ne requiert pas d’agents pour exécuter des tâches de configuration sur les cibles.

Doté de la capacité d’installer des logiciels, d’interagir avec des gestionnaires de packages, de mettre à jour des applications, de modifier des fichiers, ainsi que de configurer les services du système d’exploitation, Ansible offre une polyvalence appréciée par les développeurs et les professionnels DevOps. Souvent intégré à d’autres outils tels que Terraform, Ansible se révèle particulièrement utile pour la création d’environnements de développement.

Installation du nœud de contrôle Ansible

Pour utiliser Ansible, il est nécessaire d’avoir un environnement Linux configuré en tant que nœud de gestionnaire Ansible. En l’absence d’un environnement Linux dédié, que ce soit sous la forme d’une machine virtuelle ou d’un système Linux physique, une option pratique consiste à exploiter le sous-système Windows pour Linux (WSL) dans un environnement Windows. Une autre alternative simple serait de créer un conteneur LXC dans Proxmox.

Le dispositif central où Ansible opère, que ce soit une machine, un environnement, un conteneur, etc., est appelé le nœud de contrôle Ansible. Explorons comment déployer Ansible sur ce nœud de contrôle.

Pour commencer, installez Ansible sur votre nœud de contrôle, qui est la machine centrale à partir de laquelle vous gérez vos serveurs Ubuntu. Utilisez la commande suivante à partir d’un terminal sur un système basé sur Debian tel qu’Ubuntu :

$ sudo apt install ansible

Cette commande assure l’installation d’Ansible, assurant que le noyau Ansible et tous les modules nécessaires soient disponibles.

Notez que vous pourriez avoir besoin de satisfaire certaines conditions préalables pour l’installation d’Ansible, telles que l’installation du paquet deb suivant :

$ sudo apt install software-properties-common

Configuration du fichier d’inventaire

Une fois l’installation terminée, la prochaine étape consiste à configurer vos serveurs distants dans le fichier d’inventaire Ansible. Ce fichier répertorie les adresses IP ou les noms d’hôte des serveurs Ubuntu que vous avez l’intention de gérer, définissant ainsi vos systèmes distants. Le fichier d’inventaire Ansible adopte un format YAML et contient les informations sur les groupes de ressources auxquels vous souhaitez vous connecter, ainsi que les noms d’hôte ou adresses IP associés.

#inventory.yml

[linux]
192.168.1.4
192.168.1.5

Gestion de l’authentification sur les serveurs distants Ubuntu

L’un des défis de configuration que nous devons résoudre concerne l’authentification. En effet, par défaut, si vous tentez d’exécuter un playbook Ansible sur vos serveurs Ubuntu, des erreurs d’authentification surviendront. Vous pourriez rencontrer des messages signalant un mot de passe sudo manquant ou un échec d’authentification.

Plutôt que de compter sur l’utilisation d’un mot de passe SSH, il est en réalité plus pratique d’opter pour l’authentification par clé publique SSH pour vos serveurs Ubuntu distants.

Configurez l’authentification par clé publique sur vos serveurs Ubuntu

Pour activer l’authentification par clé publique SSH sur vos instances Ubuntu, vous devez apporter des modifications au fichier situé à l’emplacement suivant : /etc/ssh/sshd_config.

Assurez-vous que la ligne ci-dessous n’est pas commentée et qu’elle est configurée sur « yes » :

PubkeyAuthentication yes

Générer une paire de clés SSH et copier la paire de clés sur votre serveur Ubuntu

À présent, vérifiez que vous avez la même configuration d’utilisateur à la fois sur votre nœud de contrôle Ansible et sur vos serveurs Ubuntu cibles.

Une fois que vous avez créé cet utilisateur (il peut s’agir de l’utilisateur de votre choix et il n’est pas nécessaire qu’il soit un administrateur Linux), vous devez générer votre paire de clés SSH. Pour ce faire, exécutez la commande :

$ ssh-keygen

Sur notre nœud de contrôle Ansible, nous utiliserons la commande ssh-copy-id pour copier la partie clé publique de notre paire de clés sur le serveur Ubuntu cible.ssh-copy-id:

$ ssh-copy-id user@192.168.1.4

Testez votre connexion

À ce point, vous devriez être en mesure de vous connecter en SSH à votre serveur Ubuntu cible sans être invité à entrer un mot de passe. Utilisez la syntaxe suivante pour vous connecter à votre serveur cible depuis votre nœud de contrôle Ansible :

ssh <nom_utilisateur>@<IP ou nom_hôte>

Si vous obtenez un message: {« msg »: « Missing sudo password »} Rajouter ceci dans votre fichier sudoers, avec la commande :

$ visudo -f /etc/sudoers
user ALL=(root) NOPASSWD: ALL

Ansible Playbook pour mettre à jour Ubuntu

Un playbook Ansible est un document YAML dans lequel vous spécifiez des tâches d’automatisation. Afin de mettre à jour Ubuntu, votre playbook fera usage du module apt, conçu pour la gestion des packages apt sur les systèmes basés sur Debian. ex:

---
  
- hosts: all
  vars:
    ansible_host_key_checking: false
  become: true

  tasks:
    - name: Update and upgrade apt packages
      apt:
        update_cache: yes
        upgrade: yes

Ce playbook actualise le cache apt et met à niveau l’ensemble des packages vers leurs versions les plus récentes en utilisant les commandes telles que sudo apt-get update et sudo apt-get upgrade. Il actualise également le cache des packages avec la directive update_cache: yes et exécute une mise à niveau apt-get dist dans le bloc de code final.

À noter, vérifiez toujours les détails des informations sur les sources dans les emplacements de chemin suivants sur votre hôte distant pour vous assurer de l’intégrité de l’installation de votre package :

/etc/apt/sources.list
/etc/apt/sources.list.d/

Installez uniquement les mises à jour sélectives d’Ubuntu

Les balises Ansible fournissent davantage de contrôle, permettant l’exécution de tâches spécifiques au sein de votre playbook pour des mises à jour sélectives. Vous pourriez mettre en œuvre quelque chose similaire à ce qui suit :

---
- hosts: all
  become: true
  tasks: null
- name: Update the repository cache
  apt:
    update_cache: yes
    cache_valid_time: 3600
- name: Install only security updates
  apt:
    upgrade: dist
    update_cache: yes
    force_apt_get: yes
    default_release: "{{ ansible_distribution_release }}-security"

Exécuter le Playbook sur des serveurs distants

Maintenant que le nœud de contrôle Ansible est configuré, pour exécuter le playbook et mettre à jour vos serveurs distants, utilisez :

$ ansible-playbook -i inventory.yml update-ubuntu.yml

Cette commande exécutera les tâches sur tous les serveurs répertoriés dans votre fichier d’inventaire. La commande sera lancée, et Ansible suivra le processus de collecte de faits, de mise à jour du cache apt et de mise à niveau de tous les packages apt.

Le récapitulatif du playbook affiche l’état « OK » sur les deux hôtes, et le statut « modifié » indique que les hôtes ont effectivement été modifiés conformément au playbook. Veuillez noter toutes les erreurs ou avertissements dans les résultats du playbook.

Version GUI d’Ansible avec planification

Si vous recherchez une version GUI d’Ansible qui facilite la planification et l’intégration de Git, Ansible Semaphore est l’une des meilleures solutions que vous trouverez. Il est gratuit et open source et fournit une interface graphique élégante vous permettant de planifier facilement les exécutions du playbook Ansible et de l’intégrer à votre référentiel de code Git.

Catégories : AnsibleLinux

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Site développé et maintenu par la société DevNet-Solutions.fr

ErosiaX est une application libertine dédiée aux rencontres libertines, offrant un espace sécurisé et discret pour explorer des affinités d'érotismes diverses. Favorisant la liberté et le respect mutuel, ErosiaX permet à ses membres libertins de découvrir des partenaires partageant des intérêts similaires dans une communautée libertine ouverte et accueillante.