Python scripts to manage Tetaneutral.net proxmox cluster
Find a file
2025-08-31 11:07:41 +02:00
.gitignore add a .gitignore to ignore settings.py 2025-04-26 18:51:42 +02:00
djadhere.py handle errors during settings import 2025-04-27 16:33:12 +02:00
README.md add non cicustom based install, add wait_vm_unlock to replace some time.sleep 2025-08-31 11:01:43 +02:00
ttnn-list-templates.py add script dependencies for uv run 2025-08-30 22:57:40 +02:00
ttnn-vm-manual.py add script dependencies for uv run 2025-08-30 23:14:30 +02:00
ttnn-vm-new.py add vcpu 2025-08-31 11:07:41 +02:00
ttnn-vm-nextid.py add script dependencies for uv run 2025-08-30 23:00:56 +02:00
ttnn-vm-print.py add script dependencies for uv run 2025-08-30 22:59:36 +02:00
ttnn-with-tag.sh script to list VMs with tag 2025-02-24 21:45:30 +01:00

proxmox

scripts de gestion proxmox de l'association https://tetaneutral.net

Il faut générer token Proxmox et modifier user, token_name et token_value ci-dessous.

Créer dans ce dossier un fichier settings.py contenant :

PROXMOX_API_HOST = "<nom de l'hote proxmox>"

PROXMOX_ARGS_HTTPS={
  "backend": "https",
  "host": PROXMOX_API_HOST,
  "user": "nom de l'utilisatateur (par ex root@pam)",
  "token_name": 'nom du token d'API',
  "token_value": 'valeur du token d'API',
  "verify_ssl": False
}

DJADHERE_API_HOST = '<nom du serveur djadhere>'
DJADHERE_API_KEY = '<clé d'API du SI>'

TTNN_SSHKEY = '<clé ssh d'admin de tetaneutral.net>'

TTNN_TEMPLATE_VM = 'vmdid du template à utiliser par défaut'

dans un venv:

pip install proxmoxer
pip install paramiko
pip install requests
pip install openssh_wrapper
pip install argparse

alternative a pip via uv

curl -LsSf https://github.com/astral-sh/uv/releases/download/0.8.4/uv-x86_64-unknown-linux-gnu.tar.gz | tar  --strip-components=1 -xz -C /usr/local/bin
uv run ./ttnn-list-templates.py

ttnn-list-templates.py

Le script ttnn-list-templates.py permet de lister les templates existants.

ttnn-vm-new.py:

Usage:

ttnn-vm-new.py [-h] [-n] --service SERVICE [--disk DISK]
                  [--mem MEM] [--template TEMPLATE]

options:
  -h, --help           show this help message and exit
  -n, --noexec         don't execute
  --service SERVICE    djadhere service
  --disk DISK          taille disque
  --mem MEM            taille mémoire
  --template TEMPLATE  template

Ce script clone le template choisi, en retaillant le disque et en ajustant la mémoire selone les arguments passés. Il génère une spécification cloud-init qui correspond aux informations présentes dans djadhere pour la nouvelle VM (nom, adresse IPv4, vlan, clés SSH à ajouter dans /root/.ssh/autorized_keys) qui est appliquée lors du premier démarrage.

Documentation interne

https://wiki.tetaneutral.net/adminsys/creationvirtualmachine