Nous avons tous été (ou sera) confronté un jour à être sollicité par les équipes Dev, à fournir les appels API de différentes parties de l’infrastructure afin qu’ils puissent les intégrer, consolider et ainsi fournir une interface unique multi-vendeur ou de les présenter depuis le portail Cloud interne sous forme de service pour les utilisateurs.
Dans cet article, vous trouverez 2 exemples d’appels REST API sur une baie de stockage DellEMC unity qui permet la création d’un partage cifs aux utilisateurs et la création d’un DataStore NFS sur VMware.
Nous devons considérer que la baie de stockage est configuré avec le contrôleur de domaine AD, DNS, NTP.
Depuis le navigateur Chrome, Télécharger le plugin RestEasy.
Interface RestEasy

- Ajout des Headers:
- Accept : application/json

- Content-Type : application/json

- X-EMC-REST-CLIENT : true

Récupération du Token à travers :
GET https://10.10.1.4/api/instances/virtualDisk/vdisk_1

Insertion du Token au Header :
- EMC-CSRF-TOKEN : « Token »

1- Mise en place d’un partage CIFS :
- Création d’un Serveur NAS
URL: https://10.10.1.4/api/types/nasServer/instances
METHOD: POST
BODY:
{
« name »: « meta_nas »,
« pool »: {« id »: « pool_1 »},
« homeSP »: {« id »: « spa »}
}

Affichage du serveur NAS depuis l’interface Unisphere.

Comme vous pouvez le remarquer, les informations tels que le SMB Server, File System, SMB Share sont manquantes. Nous allons procéder à leur création via les requêtes qui suivront :
- Création d’une interface réseau :
URL: https://10.10.1.4/api/types/fileInterface/instances
METHOD: POST
BODY:
{
« ipPort »: {« id »: « spa_eth0 »},
« ipAddress »: « 10.10.1.82 »,
« netmask »: « 255.255.255.0 »,
« gateway »: « 10.10.1.1 »,
« nasServer »: {« id »: « nas_5 »}
}

- Ajout du domaine
URL: https://10.10.1.4/api/types/fileDNSServer/instances
METHOD: POST
BODY:
{
« nasServer »:{« id »: »nas_5″},
« domain »: »kslab.com »,
« addresses »: [
« 10.10.1.3 »
]
}

- Création d’un serveur cifs :
URL: https://10.10.1.4/api/types/cifsServer/instances
METHOD: POST
BODY:
{
« nasServer »:{« id »: »nas_5″},
« name »: »meta_cifs »,
« domain »: »kslab.com »,
« domainUsername »: »administrator »,
« domainPassword »: »************** »
}

- Création d’un système de fichier :
URL: https://10.10.1.4/api/types/storageResource/action/createFilesystem
METHOD: POST
BODY:
{
« name »: »meta_fs »,
« fsParameters »:
{
« pool »: {« id »: »pool_1″},
« nasServer »: {« id »: »nas_5″},
« isThinEnabled »: true,
« supportedProtocols »: 1,
« size »: 23221225472,
« fastVPParameters »: {« tieringPolicy »: 0}
},
« cifsFsParameters »: {« isCIFSOpLocksEnabled »:true}
}

- Création d’un partage cifs :
URL: https://10.10.1.4/api/instances/storageResource/res_6/action/modifyFilesystem
METHOD: POST
BODY:
{
« cifsShareCreate »: [
{
« path »: « / »,
« name »: « karim »,
« cifsServer »:{« id »: »cifs_2″},
« cifsShareParameters »:
{
« description »: » »,
« isReadOnly »:false,
« isEncryptionEnabled »:false,
« isContinuousAvailabilityEnabled »:false,
« isACEEnabled »:false,
« isABEEnabled »:false,
« isBranchCacheEnabled »:false
}
}
]
}
État du partage cifs:

Tester l’accès au partage de fichier :

2- Mise en place d’un Datastore NFS VMware:
URL: https://10.10.1.4/api/types/storageResource/action/createVmwareNfs
METHOD: POST
BODY:
{
« name »: « MclarenRacing »,
« fsParameters »:
{
« pool »: {« id »: »pool_1″},
« nasServer »: {« id »: »nas_5″},
« isThinEnabled »: true,
« supportedProtocols »: 0,
« size »: 99322222122
}
}

État du DataStore NFS sur DellEMC Unisphere :

État du DataStore NFS sur VMware vCenter :

Voici une démonstration de la création d’un VMware NFS DataStore et d’un partage CIFS.
La prochaine étape consiste à utiliser ces appels REST API pour mettre en place une application Web sur Flask ou Django ou notamment développer des workflow vRo pour automatiser les tâches ou de les présenter sous forme de service cloud en demande depuis l’interface vRA. Donc si vous êtes des professionnels ou avez de l’expérience dans ce domaine, et que vous souhaitez contribuer à ce projet, je suis preneur.
N’hésitez pas à me faire part de vos suggestions et de vos remarques.
(2 commentaires)