Outils pour utilisateurs

Outils du site


informatique:projets:proxmox-group-mapper

Introduction

Proxmox-group-mapper est un petit script écrit en Python permettant de faire le mapping entre des groupes locaux (ou gérés via LDAP, NIS, ou autre…) et des groupes Proxmox.

L'idée viens du fait que dans mon cas, lors des déploiement de serveurs Proxmox, je gère déjà les utilisateurs/groupes via un annuaire LDAP et ne souhaitais pas avoir une nouvelle couche de gestion des droits. Le but de ce script est donc de s'assurer que tous les membres d'un groupe local donné, soient bien ajoutés/présent dans un groupe Proxmox afin qu'ils puissent se connecter avec leurs identifiants locaux, ldap, etc… et ayant les permissions qui auront été définies pour le groupe.

Ce script utilise l'API de Proxmox en local (pour ne pas nécessiter d'authentification), il faudra donc l’exécuter sur le serveur hébergeant Proxmox.

Usage

Le script est assez simple d'utilisation :

proxmox-group-mapper usage
usage: proxmox-group-mapper.py [-h] --local-group LOCAL_GROUP --pve-group
                               PVE_GROUP --pve-role PVE_ROLE --pve-path
                               PVE_PATH [--debug]
 
optional arguments:
  -h, --help            show this help message and exit
  --local-group LOCAL_GROUP
                        Local group name or id
  --pve-group PVE_GROUP
                        Proxmox group name
  --pve-role PVE_ROLE   Role granted to the group on path
  --pve-path PVE_PATH   Path to apply role for group
  --debug               Show debugging messages (default: False)

Exemple

Un bon exemple est bien plus parlant en général :-)

J'ai un groupe local 'sysadmins' qui contient 3 utilisateurs. Je souhaite qu'un groupe 'PVE-Admins' soit crée dans Proxmox avec ces trois utilisateurs et qu'ils aient tous les droits sur Proxmox :

Mapping de 'sysadmins' vers 'PVE-Admins'
proxmox-group-mapper --local-group sysadmins \
                     --pve-group PVE-Admins \
                     --pve-role Administrator \
                     --pve-path /  

Si le groupe 'PVE-Admins' dans Proxmox n'existe pas il sera automatiquement crée et les utilisateurs également.

Si certains utilisateurs existaient déjà dans Proxmox mais ne faisaient pas partie du groupe choisi, ils seront également ajoutés au groupe.

Voici le résultat une fois la commande exécutée :

getent group on test machine
root@debian-test:~# getent group
root:x:0:
daemon:x:1:
bin:x:2:
[...]
systemd-journal:x:102:
systemd-timesync:x:103:
systemd-network:x:104:
systemd-resolve:x:105:
systemd-bus-proxy:x:106:
crontab:x:107:
netdev:x:108:sysadmin
messagebus:x:109:
ssh:x:110:
sysadmins:x:1001:admin1,admin2,admin3

Téléchargement

Proxmox-group-mapper est distribué sous la forme d'un paquet Debian afin d'assurer la dépendance avec 'pve-manager' qui est le paquet fournissant la commande 'pvesh' (client d'API Proxmox).

informatique/projets/proxmox-group-mapper.txt · Dernière modification : 2022/11/27 17:22 de lestat

Outils de la page