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: ""`.
|
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
|
```bash
|
||||||
export PVE_TOKEN_SECRET='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
|
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
|
## Déploiement
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -18,10 +18,12 @@ pve_bridge: vmbr0 # A ADAPTER
|
|||||||
pve_vlan_tag: "200"
|
pve_vlan_tag: "200"
|
||||||
pve_pool: bwpoc # pool délégué au compte dédié
|
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é")
|
# Compte dédié pour le clonage par l'API (voir README, "Compte Proxmox dédié").
|
||||||
pve_api_user: bwpoc@pve
|
# 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_id: ansible
|
||||||
pve_api_token_secret: "{{ lookup('ansible.builtin.env', 'PVE_TOKEN_SECRET') }}"
|
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_validate_certs: false # certificat auto-signé du nœud
|
||||||
pve_template_vmid: 9100
|
pve_template_vmid: 9100
|
||||||
pve_template_name: debian13-cloud
|
pve_template_name: debian13-cloud
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
- proxmox_template
|
- proxmox_template
|
||||||
|
|
||||||
# 2) Clonage des VM par l'API, avec le compte dédié bwpoc@pve (jeton API).
|
# 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).
|
# A sauter si vous fournissez vos propres VM (Debian 12/13 avec accès SSH).
|
||||||
- name: Clonage des VM par l'API Proxmox
|
- name: Clonage des VM par l'API Proxmox
|
||||||
hosts: proxmox
|
hosts: proxmox
|
||||||
@@ -20,8 +21,9 @@
|
|||||||
group/community.proxmox.proxmox:
|
group/community.proxmox.proxmox:
|
||||||
api_host: "{{ ansible_host }}"
|
api_host: "{{ ansible_host }}"
|
||||||
api_user: "{{ pve_api_user }}"
|
api_user: "{{ pve_api_user }}"
|
||||||
api_token_id: "{{ pve_api_token_id }}"
|
api_token_id: "{{ pve_api_token_id if pve_api_token_secret | length > 0 else omit }}"
|
||||||
api_token_secret: "{{ pve_api_token_secret }}"
|
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 }}"
|
validate_certs: "{{ pve_validate_certs }}"
|
||||||
roles:
|
roles:
|
||||||
- proxmox_vm
|
- proxmox_vm
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
# Clone et configure les VM du PoC par l'API Proxmox (compte dédié, voir README).
|
# 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.
|
# 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:
|
ansible.builtin.assert:
|
||||||
that: pve_api_token_secret | length > 0
|
that: (pve_api_token_secret | length > 0) or (pve_api_password | length > 0)
|
||||||
fail_msg: "Exportez PVE_TOKEN_SECRET (secret du jeton {{ pve_api_user }}!{{ pve_api_token_id }})"
|
fail_msg: "Exportez PVE_TOKEN_SECRET (jeton {{ pve_api_user }}!{{ pve_api_token_id }}) ou PROXMOX_CLAUDE et PROXMOX_PASSWORD"
|
||||||
quiet: true
|
quiet: true
|
||||||
|
|
||||||
- name: Créer le répertoire des host_vars par VM
|
- name: Créer le répertoire des host_vars par VM
|
||||||
|
|||||||
Reference in new issue
Block a user