## https://sploitus.com/exploit?id=91ED4F4C-368A-5B1B-A04B-0D2091A6C695
# Automatisation WALLIX Bastion
PoC d'automatisation pour deployer et configurer un WALLIX Bastion avec Terraform et Ansible.
Ce depot contient deux chaines principales :
- mode `PNETLab` : construit et lance un WALLIX Bastion a partir d'un ISO dans PNETLab sur VMware Workstation ;
- mode `vSphere` : clone une VM WALLIX depuis un template existant dans vCenter.
Le workflow le plus complet et effectivement valide dans ce depot est le mode `PNETLab`.
## Documentation
Point d'entree principal :
- `DOCUMENTATION/README.md`
Point d'entree rapide depuis la racine :
- `DOCUMENTATION_WALLIX.md`
## Structure du depot
- `ansible/` - playbooks de configuration WALLIX via API
- `terraform/` - stack Terraform vSphere
- `terraform/pnetlab/` - stack Terraform PNETLab
- `scripts/` - scripts d'orchestration, de preparation et de recuperation
- `DOCUMENTATION/` - documentation structuree du projet
- `logs/` - journaux d'execution
- `tmp/` - artefacts temporaires de debug
## Modes supportes
## 1. Mode PNETLab
Objectif :
- preparer l'image WALLIX dans PNETLab
- uploader et patcher l'ISO en auto-boot
- construire un template QEMU reutilisable
- lancer un noeud WALLIX dedie
- decouvrir automatiquement son IP
- configurer WALLIX avec Ansible via l'API
Point d'entree principal :
```bash
bash ./scripts/run-pnetlab.sh
```
Fichier de secrets principal :
- `secrets_pnetlab.env`
- modele : `secrets_pnetlab.env.example`
## 2. Mode local
Objectif :
- reutiliser une VM WALLIX deja installee
- ignorer Terraform
- appliquer uniquement la configuration Ansible
Point d'entree principal :
```powershell
.\scripts\run-poc.ps1 -Mode local
```
Fichier de secrets local :
- `secrets_local.env`
- modele : `secrets_local.env.example`
## 3. Mode vSphere
Objectif :
- cloner une VM WALLIX depuis un template vCenter existant
- exposer les sorties Terraform pour Ansible
- appliquer la configuration WALLIX
Point d'entree principal :
```powershell
.\scripts\run-poc.ps1 -Mode vsphere
```
Fichier de secrets vSphere :
- `.secrets.env`
- modele : `.secrets.env.example`
## Mode d'execution recommande
Il est recommande d'utiliser une VM Ubuntu dediee comme runner dans VMware Workstation plutot que WSL lorsque la stabilite de VMware / PNETLab est prioritaire.
Raison :
- WSL / Hyper-V peut interferer avec VMware Workstation sur certains postes Windows ;
- le depot s'appuie sur des outils Linux natifs comme `ansible`, `sshpass`, `xorriso`, `scp` et des scripts shell.
Scripts de preparation du runner :
- creation de la VM runner sous Windows : `scripts/setup-runner-vm.ps1`
- installation des outils dans Ubuntu : `scripts/runner/bootstrap-runner.sh`
## Demarrage rapide
## Workflow PNETLab
1. Creer le fichier de secrets :
```bash
cp ./secrets_pnetlab.env.example ./secrets_pnetlab.env
```
2. Renseigner au minimum :
- l'acces SSH PNETLab
- le tenant, la session et les chemins de labs
- le subnet de management
- les identifiants API WALLIX
3. Verifier que l'ISO WALLIX est disponible localement.
Important :
- l'ISO n'est pas suppose etre versionne dans Git ;
- le chemin par defaut dans `secrets_pnetlab.env.example` suppose l'ISO a la racine du projet ;
- si l'ISO est stocke ailleurs, il faut adapter `TF_VAR_wallix_iso_path`.
4. Lancer le workflow complet depuis le runner :
```bash
bash ./scripts/run-pnetlab.sh
```
## Workflow local
1. Creer le fichier de secrets :
```bash
cp ./secrets_local.env.example ./secrets_local.env
```
2. Renseigner au minimum :
- `LOCAL_BASTION_HOST`
- `WALLIX_API_USER`
- `WALLIX_API_PASSWORD`
- `WALLIX_ADMIN_NEW_PASSWORD`
3. Lancer :
```powershell
.\scripts\run-poc.ps1 -Mode local -AutoApprove
```
## Ce que fait Terraform
Terraform est utilise ici pour piloter l'infrastructure et l'orchestration de deploiement.
En mode `PNETLab`, il :
- prepare le repertoire d'image QEMU ;
- uploade et patche l'ISO en auto-boot ;
- genere les labs de build et de production en `.unl` ;
- demarre et arrete les noeuds PNETLab ;
- commit l'overlay de build dans un template reutilisable ;
- decouvre l'IP du bastion WALLIX.
En mode `vSphere`, il :
- clone une VM WALLIX depuis un template existant ;
- expose `bastion_ip` et `bastion_url` pour la phase Ansible.
## Ce que fait Ansible
Ansible est utilise pour configurer le produit WALLIX via l'API WALLIX.
Il gere notamment :
- les tests de disponibilite initiaux ;
- la rotation du mot de passe `admin` ;
- la recuperation de l'acces `admin` via SSH management si necessaire ;
- la creation d'utilisateurs de demonstration ;
- la declaration de devices, services, groupes, target groups et authorizations.
Playbooks principaux :
- `ansible/playbooks/bootstrap.yml`
- `ansible/playbooks/configure.yml`
- `ansible/playbooks/users.yml`
- `ansible/playbooks/assets.yml`
## Scripts importants
- `scripts/run-pnetlab.sh` - workflow complet PNETLab
- `scripts/run-poc.ps1` - point d'entree Windows pour `local` et `vsphere`
- `scripts/setup-runner-vm.ps1` - creation de la VM Ubuntu runner
- `scripts/runner/bootstrap-runner.sh` - installation des outils dans le runner
- `scripts/generate_inventory.py` - generation de l'inventaire Ansible a partir des sorties Terraform
- `scripts/smoke_test.py` - verification HTTPS et authentification API
- `scripts/wallix_reset_admin.py` - restauration du compte `admin` WALLIX via SSH management
## Fonctions optionnelles deja presentes
### Utilisateurs WALLIX geres
Activation :
- `WALLIX_MANAGED_USERS_ENABLED=true`
Definition :
- `ansible/group_vars/all.yml`
### Assets WALLIX
Activation :
- `WALLIX_ASSETS_ENABLED=true`
Definition :
- `ansible/data/wallix_assets.yml`
Cette partie couvre deja :
- devices
- services
- comptes locaux
- groupes utilisateurs
- target groups
- authorizations
## Hygiene avant publication
Avant de publier ce depot, verifier que les fichiers locaux sensibles ou volumineux ne sont pas inclus par erreur.
Ne pas publier :
- `.secrets.env`
- `secrets_local.env`
- `secrets_pnetlab.env`
- les ISO locaux
- les states Terraform locaux
- les logs et captures temporaires
- `.venv/`
Le depot ignore deja les principaux fichiers locaux via `.gitignore`, mais cela ne protege que les workflows bases sur Git.
## Etat actuel
Le depot est structure et exploitable comme base de PoC reproductible.
Le chemin local valide aujourd'hui est :
- VMware Workstation
- VM Ubuntu runner
- VM PNETLab
- WALLIX Bastion deployee dans un lab PNETLab dedie
- Terraform pour le deploiement
- Ansible pour la configuration WALLIX
Pour l'architecture detaillee, les etapes d'utilisation et la cartographie du depot, consulter :
- `DOCUMENTATION/README.md`