MODOP – Déploiement automatisé sur Cluster PROXMOX

4 Serveurs PROXMOX

  • 192.168.1.50 tex01
  • 192.168.1.51 tex02
  • 192.168.1.52 tex03
  • 192.168.1.53 tex04

Le but est de lancer des mises à jours automatisées sur l’ensemble des serveurs en utilisant une machine master qui va  lancer pour chacune des machines les commandes souhaitées.

Aout des machines du CLuster Proxmox dans /etc/hosts.
Exemple sur tex01
root@tex01:~# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.50 tex01.home tex01
192.168.1.51 tex02.home tex02
192.168.1.52 tex03.home tex03
192.168.1.53 tex04.home tex04

Ajout d’une clef SSH et cela pour chaque serveur
Exemple sur tex01

Générer la Clef Public et Privé
root@tex01:~# ssh-keygen -b 2048

Copier la Clef Pubic sur les machine tex02,tex3 et tex04
root@tex01:~# ssh-copy-id -i .ssh/id_rsa.pub root@tex02
root@tex01:~# ssh-copy-id -i .ssh/id_rsa.pub root@tex03
root@tex01:~# ssh-copy-id -i .ssh/id_rsa.pub root@tex04

Faire cela pour les serveurs tex02,tex03 et tex04.

Vérifier que SSH autorise les connexions root
Editer le fichier /etc/ssh/sshd_config pour autoriser les connexions root ssh.

Décommenter les lignes suivantes:
PermitRootLogin yes
PubkeyAuthentication yes

Installer et configure ansible sur une machine Master (tex01)
root@tex01:~# apt update && apt upgrade
root@tex01:~# apt-get install ansible
root@tex01:/# cd /etc/ansible/

Editer le fichier /etc/ansible/hosts et ajouter le cluster proxmox
[proxmox-cluster]
tex01
tex02
tex03
tex04

Test à présent communication ansible sur le cluster
root@tex01:/etc/ansible# ansible -m ping all

Pour récupérer des informations
root@tex01:/etc/ansible# ansible proxmox-cluster -m setup –tree /tmp/facts_servers/

Exemple pour récupérer les IP du Cluster
root@tex01:/etc/ansible# ansible proxmox-cluster -m setup –tree /tmp/facts_servers/ |grep ‘ »address »:’ |sort |uniq

Connaitre le « uptime » sur le cluster
root@tex01:/etc/ansible# ansible all -m command -u root –args « uptime » –one-line

Déployer sur tous le cluster des packages que l’on souhaite avoir via un playbook.
root@tex01:/etc/ansible# vi necessary.xml

– hosts: proxmox-cluster
remote_user: root
tasks:
– name: install common packages for all servers
apt:
update_cache=yes
state=latest
name={{item}}
with_items:
– curl
– htop
– ncdu
– pwgen
– strace
– sudo
– tar
– unzip
– vim
– wget
– whois

Test de la syntaxe ansible.
root@tex01:/etc/ansible# ansible-playbook –syntax-check necessary.xml

Lancement du playbook pour deployer à tous les hosts les packages
root@tex01:/etc/ansible# ansible-playbook -i hosts necessary.xml

Avec une seule commande, on a installé 11 paquets sur les 4 hosts du cluster proxmox-cluster.

Views: 23

Laisser un commentaire

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