simoncaron.pve_permissions

Rôle Ansible : Permissions Proxmox VE (Utilisateurs/ACLs/Groupes/Rôles/Pools)

Ansible Lint Ansible Release Ansible Galaxy Downloads

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.

À propos du projet

A role to configure Proxmox VE Users, Roles, ACLs and Pools

Installer
ansible-galaxy install simoncaron.pve_permissions
Licence
mit
Téléchargements
4.6k
Propriétaire
Software Engineer | IaC | Containers | Ansible | Kubernetes | Helm