simoncaron.pve_permissions

Rol de Ansible: Permisos de Proxmox VE (Usuarios/ACLs/Grupos/Roles/Piscinas)

Ansible Lint Ansible Release Descargas de Ansible Galaxy

Un rol de Ansible que configura Usuarios/Roles/Piscinas/Grupos en un nodo de Proxmox VE.

Este rol fue probado en Proxmox VE 7.2.

Requisitos

Ninguno.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml):

pve_permissions_roles: []

pve_permissions_users: []

pve_permissions_groups: []

pve_permissions_pools: []

La clave pve_permissions_roles debe contener una lista de roles a crear. Cada rol debe tener dos claves definidas, name, que establece el nombre del rol, y privs, que es una lista que debe contener los privilegios asignados al rol. Una lista completa de los privilegios se puede encontrar aquí bajo Gestión de Permisos > Privilegios. Ejemplo de configuración de rol:

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 clave pve_permissions_users permite definir una lista de usuarios y las ACL vinculadas a un usuario en un host Proxmox. Cada entrada debe contener un valor para name y realm. Para nuevos usuarios (que no sean el root predeterminado), también se debe proporcionar una password. Otras claves opcionales para cada entrada son email, comment, enable (1 o 0), expire, groups, firstname y lastname. Los detalles sobre el valor de cada clave se pueden encontrar en la documentación de PVE.

Cada usuario también debe contener una lista de permisos de ACL que deben ser otorgados en la clave acls. Cada ACL define un path y un role. Aquí hay un ejemplo de configuración de un usuario:

pve_permissions_users:
  - name: terraform
    realm: pve
    email: test@email.com
    firstname: terra
    lastname: form
    comment: Usuario de Terraform
    enable: "1"
    expire: "0"
    groups:
      - Group1
      - Group2
    password: "password"
    acls:
      - path: /
        role: TerraformProv

NOTA: Debido a una limitación de la herramienta pveum, actualmente no es posible asignar nuevos grupos a un usuario existente.

La clave pve_permissions_groups debe contener una lista de grupos a crear en la instancia de Proxmox. Cada entrada de grupo debe contener un valor de name que define el nombre del grupo y también puede contener un valor de comment que describa el propósito del grupo. Aquí hay un ejemplo de configuración de grupos:

pve_permissions_groups:
  - name: Group1
    comment: Mi Grupo

La clave pve_permissions_pools debe contener una lista de piscinas a crear en el host de Proxmox. Cada piscina debe tener una clave name configurada con el nombre deseado de la piscina y, opcionalmente, una clave comment que describa el propósito de la piscina. Aquí hay un ejemplo de configuraciones de piscina:

pve_permissions_pools:
  - name: terraform
    comment: Recursos gestionados mediante terraform
  - name: ansible
    comment: Recursos gestionados mediante ansible
  - name: manual
    comment: Recursos creados manualmente

Dependencias

Ninguna.

Ejemplo 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: recursos de terraform
    pve_permissions_users:
      - name: terraform
        realm: pve
        password: "password"
        acls:
          - path: /
            role: TerraformProv
  roles:
    - simoncaron.pve_permissions

Licencia

MIT

Información del Autor

Este rol fue creado en 2022 por Simon Caron.

Acerca del proyecto

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

Instalar
ansible-galaxy install simoncaron.pve_permissions
Licencia
mit
Descargas
4.6k
Propietario
Software Engineer | IaC | Containers | Ansible | Kubernetes | Helm