VMware : Request a vRA Blueprint from Jenkins
VMware : Request a vRA Blueprint depuis Jenkins
Dans cet article nous allons voir comment consommer un blueprint vRA depuis Jenkins. vRA, Jenkins ainsi que le plugin vRA pour Jenkins sont nécessaires.
Création d’un Blueprint DEV-CentOS sur vRA
On ajoute une machine de type vSphere au canvas
Notez bien l’ID donnez à la machine vSphere – ID: DEVCENTOS
Cette ID sera nécessaire pour Jenkins
On configure les min/max ressources que peut demander le user
On insère une Custom Property Hostname
Cette custom property permet à l’utilisateur de renseigner le nom qu’il souhaite donner à sa future VM.
Le service est disponible sur le catalogue (Je vous passe les étapes de publication/entitlement du service).
Une fois le service disponible, on passe sur Jenkins.
Configuration Jenkins
Création d’un projet: vRA Project
Configurer le vRA Project
En cliquant sur configure (au niveau du projet jenkins), on trouve tout un tas d’options pour configurer le build Jenkins.
Avec le Plugin vRA pour Jenkins, vous devriez avoir une rubrique nomée: vRealize Automation Deployment. C’est celle-ci qu’on va configurée.
Renseigner les informations relatives à votre environnement
Note: Au niveau du champ Blueprint, on a renseigné $Template, c’est une variable qui sera passé à travers le build Jenkins.
Ce champ est le plus important.
Les paramètres JSON (de type Javascript) seront envoyés depuis Jenkins vers vRA.
{“key”:”provider-DEVCENTOS”, “value”:{“type”:”complex”, “values”:{“entries” :[ {“key”:”memory”, “value”:{“type”:”integer”, “value”:”$Memory”}}, {“key”:”Hostname”, “value”:{“type”:”string”, “value”:”$HOSTNAME”}}, {“key”:”cpu”, “value”:{“type”:”integer”, “value”:”$CPU”}}]}}}
Qu’est-ce qu’on trouve ici ?
- “key”:”provider-DEVCENTOS” (vous vous rappelez l’ID de notre Blueprint CentOS ?)
- $CPU
- $Memory
- $Hostname Les variables $CPU, $Memory, $Hostname, seront renseignées lors de la request via le build Jenkins. L’utilisateur devra donc indiquer le nombre de CPU, la quantité de RAM ainsi que le nom de la VM souhaitée. Vous comprenez donc qu’on aurait pu rajouter l’adresse IP, le mot de passe souhaité, etc .
Définitions des Paramètres Jenkins
Comme pour le plugin vRA, on peut ajouter des Paramètres au build Jenkins. Ces paramètres ou variables seront présentés à l’utilsateur.
C’est exactement ce dont on a besoin.
Hostname = l’utilisateur devra renseigner le nom de sa VM
CPU = l’utilisateur aura le choix entre 1 – 4 CPU
Memory = l’utilisateur aura le choix entre 2, 4 ou 8 GB de RAM.
Template = variable fixe ici car un seul choix. Mais vous l’avez compris, on peut mettre plusieurs choix, qui derrières aboutiront sur différents blueprint sur vRA
Lancement du Build Jenkins
Voilà, l’utilisateur doit renseigner le Hostname, le CPU, la RAM et le Template voulu.
Voici les paramètres passés.
Le build lancé le 25/01/2018 à 18h37 sur Jenkins est en cours de construction
Voici la Sortie console du build Jenkins.
On voit bien que les paramètres renseignés au moment du build (jenkins-vm, CPU=2, Memory=4096) ont été passés au Parameter JSON avant d’être envoyés vers vRA.
Aperçu de la request sur vRA
On voit bien que la request a été envoyée le 25/01/2018 à 18h37. La request est bien sur le Blueprint Dev-Centos, 2 CPU et 4096 MB de RAM.
Le Blueprint est déployé sur le vCenter le 25/01/2018 à 18h39. La VM est bien renommée en jenkins-vm
Le build Jenkins est terminé: SUCCESS. Le build à duré 5 min