API Proxmox : authentification par mot de passe (PROXMOX_CLAUDE / PROXMOX_PASSWORD) en plus du jeton
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5846487f07
commit
34004ad371
4 files changed
+19
-8
No files matched your search
@@ -91,12 +91,19 @@ pveum acl modify /nodes/lancelot --users bwpoc@pve --roles PVEAuditor
|
||||
|
||||
Si le réseau "LAB" est un VNet SDN plutôt qu'un tag sur `vmbr0`, l'ACL réseau devient `/sdn/zones/<zone>/LAB` et, dans `all.yml`, `pve_bridge: LAB` avec `pve_vlan_tag: ""`.
|
||||
|
||||
Le secret du jeton reste hors du dépôt, dans l'environnement :
|
||||
Les secrets restent hors du dépôt, dans l'environnement. Au choix, le jeton :
|
||||
|
||||
```bash
|
||||
export PVE_TOKEN_SECRET='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
|
||||
```
|
||||
|
||||
ou l'identifiant et le mot de passe du compte (le jeton est prioritaire s'il est défini) :
|
||||
|
||||
```bash
|
||||
export PROXMOX_CLAUDE='bwpoc@pve'
|
||||
export PROXMOX_PASSWORD='...'
|
||||
```
|
||||
|
||||
## Déploiement
|
||||
|
||||
```bash
|
||||
|
||||
@@ -18,10 +18,12 @@ pve_bridge: vmbr0 # A ADAPTER
|
||||
pve_vlan_tag: "200"
|
||||
pve_pool: bwpoc # pool délégué au compte dédié
|
||||
|
||||
# Compte dédié pour le clonage par l'API (voir README, "Compte Proxmox dédié")
|
||||
pve_api_user: bwpoc@pve
|
||||
# Compte dédié pour le clonage par l'API (voir README, "Compte Proxmox dédié").
|
||||
# Jeton API (PVE_TOKEN_SECRET) prioritaire, sinon mot de passe (PROXMOX_PASSWORD).
|
||||
pve_api_user: "{{ lookup('ansible.builtin.env', 'PROXMOX_CLAUDE') | default('bwpoc@pve', true) }}"
|
||||
pve_api_token_id: ansible
|
||||
pve_api_token_secret: "{{ lookup('ansible.builtin.env', 'PVE_TOKEN_SECRET') }}"
|
||||
pve_api_password: "{{ lookup('ansible.builtin.env', 'PROXMOX_PASSWORD') }}"
|
||||
pve_validate_certs: false # certificat auto-signé du nœud
|
||||
pve_template_vmid: 9100
|
||||
pve_template_name: debian13-cloud
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- proxmox_template
|
||||
|
||||
# 2) Clonage des VM par l'API, avec le compte dédié bwpoc@pve (jeton API).
|
||||
# Authentification : jeton (PVE_TOKEN_SECRET) ou mot de passe (PROXMOX_CLAUDE / PROXMOX_PASSWORD).
|
||||
# A sauter si vous fournissez vos propres VM (Debian 12/13 avec accès SSH).
|
||||
- name: Clonage des VM par l'API Proxmox
|
||||
hosts: proxmox
|
||||
@@ -20,8 +21,9 @@
|
||||
group/community.proxmox.proxmox:
|
||||
api_host: "{{ ansible_host }}"
|
||||
api_user: "{{ pve_api_user }}"
|
||||
api_token_id: "{{ pve_api_token_id }}"
|
||||
api_token_secret: "{{ pve_api_token_secret }}"
|
||||
api_token_id: "{{ pve_api_token_id if pve_api_token_secret | length > 0 else omit }}"
|
||||
api_token_secret: "{{ pve_api_token_secret if pve_api_token_secret | length > 0 else omit }}"
|
||||
api_password: "{{ pve_api_password if pve_api_token_secret | length == 0 else omit }}"
|
||||
validate_certs: "{{ pve_validate_certs }}"
|
||||
roles:
|
||||
- proxmox_vm
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
# Clone et configure les VM du PoC par l'API Proxmox (compte dédié, voir README).
|
||||
# Exécuté sur le contrôleur Ansible : connection local dans le playbook.
|
||||
- name: Contrôler la présence du jeton API
|
||||
- name: Contrôler la présence d'un secret pour l'API
|
||||
ansible.builtin.assert:
|
||||
that: pve_api_token_secret | length > 0
|
||||
fail_msg: "Exportez PVE_TOKEN_SECRET (secret du jeton {{ pve_api_user }}!{{ pve_api_token_id }})"
|
||||
that: (pve_api_token_secret | length > 0) or (pve_api_password | length > 0)
|
||||
fail_msg: "Exportez PVE_TOKEN_SECRET (jeton {{ pve_api_user }}!{{ pve_api_token_id }}) ou PROXMOX_CLAUDE et PROXMOX_PASSWORD"
|
||||
quiet: true
|
||||
|
||||
- name: Créer le répertoire des host_vars par VM
|
||||
|
||||
Reference in new issue
Block a user