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