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-vaultpour 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, utilisateuransible_userPermission denied:become: yeset sudo sur la cible- Support HolyCloud : sortie
ansible-playbook -vvv, IP source du contrôleur, règles UFW