Retourner sur le site

Installer Ansible

Installer Ansible sur un VPS HolyCloud pour automatiser la configuration de serveurs et déployer des playbooks.

Installer Ansible

Ansible automatise la configuration de serveurs via SSH, sans agent sur les machines cibles. Sur un VPS Linux HolyCloud, installez-le sur un nœud de contrôle (bastion) qui administre ce VPS et d'autres serveurs (second VPS, staging, etc.).

Prérequis

  • VPS HolyCloud Ubuntu/Debian avec Python 3 et accès sudo
  • Clés SSH configurées vers les hôtes cibles (ssh-copy-id)
  • Port 22 ouvert vers les cibles (UFW + pare-feu HolyCloud)

Étape 1 : installation via APT (recommandé)

PPA ou paquets officiels Ubuntu :

sudo apt update
sudo apt install -y ansible sshpass
ansible --version

Sur Debian 12 :

sudo apt install -y ansible-core sshpass

Étape 2 : installation via pip (version récente)

Pour une version plus neuve, isolée :

sudo apt install -y python3-pip python3-venv
python3 -m venv ~/ansible-venv
source ~/ansible-venv/bin/activate
pip install --upgrade pip ansible
ansible --version

Ajoutez à ~/.bashrc :

source ~/ansible-venv/bin/activate

Étape 3 : structure de projet

mkdir -p ~/ansible/{inventory,playbooks,roles}
cd ~/ansible

Inventaire simple /inventory/hosts.ini :

[vps_holycloud]
vps-prod ansible_host=203.0.113.10 ansible_user=deploy

[vps_holycloud:vars]
ansible_python_interpreter=/usr/bin/python3

Remplacez par l'IP publique de vos VPS affichée dans l'espace client HolyCloud.

Étape 4 : premier playbook

Fichier playbooks/ping.yml :

---
- name: Test connectivité VPS HolyCloud
  hosts: vps_holycloud
  gather_facts: yes
  tasks:
    - name: Ping module
      ansible.builtin.ping:

    - name: Afficher hostname
      ansible.builtin.debug:
        msg: "Serveur {{ inventory_hostname }} = {{ ansible_hostname }}"

Exécution :

cd ~/ansible
ansible-playbook -i inventory/hosts.ini playbooks/ping.yml

Test ad hoc :

ansible -i inventory/hosts.ini vps_holycloud -m shell -a 'uptime'

Étape 5 : playbook utile — paquets de base

playbooks/base.yml :

---
- name: Configuration de base
  hosts: vps_holycloud
  become: yes
  tasks:
    - name: Mettre à jour le cache apt
      ansible.builtin.apt:
        update_cache: yes
        cache_valid_time: 3600

    - name: Installer paquets essentiels
      ansible.builtin.apt:
        name:
          - curl
          - git
          - ufw
          - fail2ban
        state: present

    - name: Autoriser SSH dans UFW
      community.general.ufw:
        rule: allow
        name: OpenSSH

    - name: Activer UFW
      community.general.ufw:
        state: enabled

Collection UFW :

ansible-galaxy collection install community.general
ansible-playbook -i inventory/hosts.ini playbooks/base.yml

Étape 6 : bonnes pratiques HolyCloud

  • Stockez l'inventaire et les vaults hors Git public ; utilisez ansible-vault pour les secrets
  • Limitez le nœud de contrôle par IP (votre bureau ou un VPS admin dédié)
  • Un seul VPS peut être à la fois cible et contrôleur pour de petits parcs

Fichier ansible.cfg local :

[defaults]
inventory = inventory/hosts.ini
host_key_checking = False
retry_files_enabled = False

En production, activez host_key_checking et known_hosts.

Vérification

ansible --version
ansible -i inventory/hosts.ini all -m ping
ansible-config dump | head -20

Besoin d'aide HolyCloud

  • UNREACHABLE : IP, pare-feu HolyCloud, clé SSH, utilisateur ansible_user
  • Permission denied : become: yes et sudo sur la cible
  • Support HolyCloud : sortie ansible-playbook -vvv, IP source du contrôleur, règles UFW