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

  1. 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)

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.