simoncaron.pve_permissions
Rôle Ansible : Permissions Proxmox VE (Utilisateurs/ACLs/Groupes/Rôles/Pools)
Un rôle Ansible qui configure les Utilisateurs/Rôles/Pools/Groupes sur un nœud Proxmox VE.
Ce rôle a été testé sur Proxmox VE 7.2.
Exigences
Aucune.
Variables du Rôle
Les variables disponibles sont énumérées ci-dessous, avec les valeurs par défaut (voir defaults/main.yml
) :
pve_permissions_roles: []
pve_permissions_users: []
pve_permissions_groups: []
pve_permissions_pools: []
La clé pve_permissions_roles
doit contenir une liste de rôles à créer. Chaque rôle doit avoir deux clés définies, name
, qui définit le nom du rôle, et privs
, qui est une liste contenant les privilèges associés au rôle. Une liste complète des privilèges peut être trouvée ici sous Gestion des Permissions > Privilèges. Exemple de configuration d'un rôle :
pve_permissions_roles:
- name: TerraformProv
privs:
- VM.Allocate
- VM.Clone
- VM.Config.CDROM
- VM.Config.CPU
- VM.Config.Cloudinit
- VM.Config.Disk
- VM.Config.HWType
- VM.Config.Memory
- VM.Config.Network
- VM.Config.Options
- VM.Monitor
- VM.Audit
- VM.PowerMgmt
- Datastore.AllocateSpace
- Datastore.Audit
La clé pve_permissions_users
permet de définir une liste d'utilisateurs et des ACL associés à un utilisateur sur un hôte Proxmox. Chaque entrée doit contenir une valeur name
et realm
. Pour les nouveaux utilisateurs (autres que le root par défaut), un password
doit également être fourni. D'autres clés optionnelles pour chaque entrée sont email
, comment
, enable
(1 ou 0), expire
, groups
, firstname
et lastname
. Les détails sur la valeur de chaque clé peuvent être trouvés dans la documentation PVE.
Chaque utilisateur doit également contenir une liste de permissions ACL qui doivent lui être accordées sous la clé acls
. Chaque ACL définit un path
et un role
. Voici un exemple de configuration d'utilisateur :
pve_permissions_users:
- name: terraform
realm: pve
email: [email protected]
firstname: terra
lastname: form
comment: Utilisateur Terraform
enable: "1"
expire: "0"
groups:
- Group1
- Group2
password: "password"
acls:
- path: /
role: TerraformProv
NOTE : En raison d'une limitation de l'outil pveum
, il n'est actuellement pas possible d'assigner de nouveaux groupes à un utilisateur existant.
La clé pve_permissions_groups
doit contenir une liste de groupes à créer sur l'instance Proxmox. Chaque entrée de groupe doit contenir une entrée name
définissant le nom du groupe et peut également contenir une valeur comment
qui décrira l'objectif du groupe. Voici un exemple de configuration de groupes :
pve_permissions_groups:
- name: Group1
comment: Mon Groupe
La clé pve_permissions_pools
doit contenir une liste de pools à créer sur l'hôte Proxmox. Chaque pool doit avoir une clé name
définie avec le nom souhaité et éventuellement une clé comment
décrivant l'objectif du pool. Voici un exemple de configuration de pools :
pve_permissions_pools:
- name: terraform
comment: Ressources gérées avec terraform
- name: ansible
comment: Ressources gérées avec ansible
- name: manual
comment: Ressources créées manuellement
Dépendances
Aucune.
Exemple de Playbook
- hosts: localhost
vars:
pve_permissions_roles:
- name: TerraformProv
privs:
- VM.Allocate
- VM.Clone
- VM.Config.CDROM
- VM.Config.CPU
- VM.Config.Cloudinit
- VM.Config.Disk
- VM.Config.HWType
- VM.Config.Memory
- VM.Config.Network
- VM.Config.Options
- VM.Monitor
- VM.Audit
- VM.PowerMgmt
- Datastore.AllocateSpace
- Datastore.Audit
pve_permissions_pools:
- name: terraform
comment: ressources terraform
pve_permissions_users:
- name: terraform
realm: pve
password: "password"
acls:
- path: /
role: TerraformProv
roles:
- simoncaron.pve_permissions
Licence
MIT
Informations sur l'Auteur
Ce rôle a été créé en 2022 par Simon Caron.
A role to configure Proxmox VE Users, Roles, ACLs and Pools
ansible-galaxy install simoncaron.pve_permissions