Un micro service dédié à la gestion de Machines Virtuelles sur Azure et des connections (RDP) via Apache Guacamole.
Ce projet utilise FastAPI.
uvicorn main:app --reload
| Nom de la variable | Description | Requis |
|---|---|---|
| PROJECT_STORAGE_BACKEND | Optionnel. Backend de stockage des données projets. Valeurs : azure_fileshare (défaut) ou azure_blob. |
|
| AZURE_SUBSCRIPTION_ID | ID de la souscription. Azure | |
| AZURE_CLIENT_ID | ID de l'application Azure (voir section Générer les clés pour s'authentifier auprès d'Azure). | |
| AZURE_CLIENT_SECRET | Secret de l'application Azure (voir section Générer les clés pour s'authentifier auprès d'Azure). | |
| AZURE_TENANT_ID | Tenant de l'application Azure (voir section Générer les clés pour s'authentifier auprès d'Azure). | |
| AZURE_RESOURCE_GROUP_NAME | Nom du Resource group où sont regroupées les ressources sur le compte Azure. | |
| AZURE_TEMPLATE_SPECS_NAME | Nom du Template specs utilisé pour déployer les machines virtuelles. Voir le projet euphrosyne-tools-infra. |
|
| AZURE_RESOURCE_PREFIX | Optionnel. Préfixe utilisé pour éviter les collisions de nom lors de la création de ressources sur Azure. Doit être le même que dans la configuration Terraform (projet euphrosyne-tools-infra). |
|
| AZURE_STORAGE_ACCOUNT | Nom du Storage account Azure. | |
| AZURE_STORAGE_FILESHARE | Nom du Fileshare contenant les fichiers de données sur le Storage account Azure. Requis si PROJECT_STORAGE_BACKEND=azure_fileshare (valeur par défaut). |
|
| AZURE_STORAGE_PROJECTS_LOCATION_PREFIX | Optionnel. Prefixe lorsque le dossier contenant les fichiers de données sur le Fileshare Azure n'est pas à la racine. | |
| AZURE_STORAGE_DATA_CONTAINER | Nom du container Blob utilisé pour les données projets (requis si PROJECT_STORAGE_BACKEND=azure_blob). |
|
| AZURE_IMAGE_GALLERY | Nom de la Azure compute gallery qui stock les différentes images | |
| AZURE_IMAGE_DEFINITION | Nom de la VM image definition qui est l'image pré-configurée pour les VM Euphrosyne | |
| CORS_ALLOWED_ORIGIN | Origines des frontends autorisées à utiliser l'API. Séparer les origines par des espaces. | |
| GUACAMOLE_ROOT_URL | URL du service guacamole. Ajouter /guacamole à la fin si besoin. |
|
| GUACAMOLE_ADMIN_USERNAME | Nom d'un utilisateur qui peut gérer les connections sur le service Guacamole. | |
| GUACAMOLE_ADMIN_PASSWORD | Mot de passe de l'utilisateur Guacamole. | |
| GUACAMOLE_SECRET_KEY | Clé secrète utilisée pour encrypter les mots de passe des utilisateurs créés à la volée. | |
| JWT_SECRET_KEY | Clé secrète utilisée pour lire les tokens JWT reçus depuis le backend euphrosyne. Doit être la même que l'application Django Euphrosyne. |
|
| VM_LOGIN | Nom d'utilisateur utilisé pour se connecter aux machines virtuelles. | |
| VM_PASSWORD | Mot de passe utilisé pour se connecter aux machines virtuelles. |
Les données projets peuvent être stockées soit dans un Fileshare Azure, soit dans un container Blob.
- Fileshare (par défaut) :
PROJECT_STORAGE_BACKEND=azure_fileshareetAZURE_STORAGE_FILESHAREdoit être renseigné. - Blob : définir
PROJECT_STORAGE_BACKEND=azure_blobet renseignerAZURE_STORAGE_DATA_CONTAINER.
Le préfixe AZURE_STORAGE_PROJECTS_LOCATION_PREFIX continue de s'appliquer (chemin de base des projets) pour les deux backends.
Pour autoriser les frontends à accéder directement au stockage, utiliser les scripts suivants :
-
Blob :
python scripts/set_blob_cors.py "<origins>" <container_name>
Exemple :
python scripts/set_blob_cors.py "https://app.example.com,https://admin.example.com" project-myproject -
Fileshare :
python scripts/set_file_share_cors.py "<origins>"Exemple :
python scripts/set_file_share_cors.py "https://app.example.com,https://admin.example.com"