Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Présentation et mise en place de la solution OpenNebula.

Par Florentin GARREAU Publié le 05/10/2017 à 19:21:52 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Présentation de la solution

La solution OpenNebula a été créée en 2005 par deux protagonistes : M. Llorente et Rubén S. Montero. Ils ont sorti ensemble une première version publique en mars 2008. Depuis ce jour la solution est un projet Open Source. Ce dernier cesse d’évoluer dû au nombreuses recherches et développement. Elle évolue principalement dû à sa nombreuse communauté d’utilisateurs et leurs échanges.

On peut appeler cette solution, du SDDS, pour Software-Defined Datacenter. Cette solution comprend les trois briques du Software-Defined :

  • La brique SDC (Software-Defined Compute), ce qui correspond à la virtualisation des serveurs. Mettre plusieurs services différents dans un même serveur.

  • La brique SDS (Software-Defined Storage), ce qui correspond à la virtualisation du stockage. Cette solution permet de virtualiser le contrôleur de stockage et utiliser les serveurs connectés directement aux serveurs en DAS (direct-attached storage).

  • La brique SDN (Software-Defined Network), cette dernière brique correspond à la virtualisation du réseau. Elle permet de regrouper l’ensemble des équipements virtuels (Commutateurs, routeurs et firewall) dans une console commune. De ce faite, nous pouvons affecter par cette console des règles de routage, de firewall et des ACLs sur l’ensemble des équipements.

Ce concept permet une automatisation du processus de création d’une machine virtuelle. Nous pouvons définir des droits, des réseaux et des templates qu’un utilisateur peut utiliser. En cas de création d’une machine virtuelle, cette dernière peut se retrouver automatiquement avec les bonnes caractéristiques (Processeurs, Mémoire vive, taille de disque), mais également avec les différents réseaux que la machine pourra accéder.

La solution Opennebula répond totalement à cette demande est permet de créer un portail Self-Service en s’appuyant sur des clusters de virtualisation de type KVM ou Vcenter.

Prérequis

Au préalable, j’ai mis en place un Cluster VSPhere avec un nœud VMWare ESXi, ce dernier va être notre hyperviseur qui va héberger notre appliance OpenNebula. Et par la même occasion, servir à OpenNebula pour orchestrer des machines virtuelles, leurs réseaux etc.

J’ai également installé un Linux Debian 8, ce dernier va nous permettre d’installer la solution OpenNebula.

Quand la machine Debian 8 est installée, il faut installer le module SSH pour pouvoir se connecter plus facilement à notre serveur à l’aide de l’outils Putty par exemple.

Lancer la commande :

apt-get install openssh-client

Installation de la solution OpenNebula

Nous allons à présent installer la solution, pour réaliser cette manipulation, j’ai suivi la documentation officielle d’OpenNebula, que nous pouvons trouver à ce lien : https://docs.opennebula.org

Commencer par vous connectez en root sur votre machine virtuelle Linux qui va accueillir la solution OpenNebula, dans mon cas, c’était un Debian 8.2.

Lancer la commande :

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add -

Puis ajouter un dépôt nommé opennebula.list dans /etc/apt/sources.list, il vous suffit de lancer cette commande :

echo "deb http://downloads.opennebula.org/repo/5.2/Debian/8 stable opennebula" > /etc/apt/sources.list.d/opennebula.list

Mettez à jour l’ensemble des fichiers présent dans les dépots APT, cette commande va permettre de mettre à jour notre depot pour OpenNebula. Lancer la commande :

Apt-get update

Nous allons à présent lancer l’installation de l’ensemble des paquets qui font permettre le fonctionnement de OpenNebula :

  • Opennebula : Ce paquet permet est le cœur de la solution OpenNebula , ce qu’on appelle un Daemon dans le langage Linux.

  • Opennebula-sunstone : L’interface graphique destiné à l’administration de la solution, mais sert également de portail Self-Service pour les clients finaux.

  • Opennebula-gate : Ce paquet permet à OpenNebula de collecter les paramètres et les problèmes sur les machines virtuelles que la solution monitore.

  • Opennebula-flow : Ce composant permet à OpenNebula de gérer des services installés sur différentes machines virtuelles et de mettre en place de l’auto-scaling (Elasticite). Ce qui veut dire rajouter une nouvelle machine virtuelle en cas de besoin de plus de performance.

Lancer la commande : apt-get install opennebula opennebula-sunstone opennebula-gate opennebula-flow

Puis cliquer sur O pour accepter l’installation :

Nous pouvons voir que l’installation s’est réalisée correctement :

OpenNebula a besoin de bibliothèque Ruby pour fonctionner correctement. L’équipe d’OpenNebula fournit un script présent dans le système à l’installation de la solution. Veuillez lancer cette commande :

/usr/share/one/install_gems

Pressez le bouton entrer pour lancer l’installation :

Puis cliquer sur O pour continuer l’installation :

Nous pouvons voir l’installation se dérouler et se terminer :

Par la suite, nous allons ajouter un mot de passe pour le compte d’administration d’OpenNebula, veuillez executer la commande ci-dessous en changeant mypassword par le mot de passe que vous souhaitez :

echo "oneadmin:mypassword" > ~/.one/one_auth

Dans mon cas 1234 :

A présent nous allons démmarrer les services d’OpenNebula, en commancant par le premier qui permet la gestion d’OpenNebula en ligne de commande. Lancer la commande :

systemctl start opennebula

Puis nous allons lancer la commande qui permet de lancer la gestion de la solution en graphique :

Systemctl start opennebula-sunstone

Pour vérifier que les commandes sont bien fonctionnelles, lancer une commande OpenNebula comme : oneuser show

Si cette dernière affiche ce message, c’est que la solution fonctionne correctement :

Dans le cas d’un message ci-dessous, le service n’a pas correctement démarré :

Failed to open TCP connection to localhost:2633 (Connection refused - connect(2) for "localhost" port 2633)

Connexion à l'interface graphique

Pour tester le lancement correct de la console graphique Sunstone, veuillez saissir dans votre navigateur : <ip> :9869

Dans mon cas, l’IP de mon serveur Debian où est installé OpenNebula est 10.1.1.210.

Ci-dessous la capture de l’écran d’authentification d’OpenNebula sur mon poste :

Veuillez rentrer votre Username et password pour vous connecter, ceux qui sont spécifié dans le fichier one_auth

Dans mon cas : oneadmin/1234 :

Nous arrivons sur le tableau de port de Sunstone, c’est sur ce menu que nous allons pouvoir voir un récapitulatif de l’ensemble de notre solution.

Notre tableau latéral est divisé en plusieurs sous-menus :

  • Dashboard :

  • Instances : Machines Virtuelles / Services / Routeurs virtuels

  • Templates : Machines Virtuelles / Services / Routeurs virtuels

  • Stockage : Datastores / Images / Files / Market Places / Apps

  • Network : Virtual Networks / Network Topology / Security Groups

  • Infrastructure : Clusters / Hosts / Zones

  • Systèmes : Utilisateurs / Groupes / VDCs /ACLs

  • Settings :

Ajout de notre vCenter à OpenNebula

Nous allons à présent ajouter notre VCenter à notre OpenNebula, ce dernier est en 10.1.1.15/24

Il faut au préalable vérifier les pre-requis pour Vcenter dans la documentation à ce lien : http://docs.opennebula.org/5.2/deployment/node_installation/vcenter_node_installation.html

Par la suite, il faut vérifier que les paramétrages sont bon dans le fichier situé à /etc/one/oned.conf

Vérifier ou modifier ces paramètres :

Modifier à votre convenance les deux paramètres suivants :

  • -r : Nombre de tentative de connexion à un hôte lors de son monitoring (Surveillance).

  • -t : Nombre d’hôtes monitorés en simultanés.

Un peu plus bas :

Modifier à votre convenance les paramètres suivants :

  • -r : Nombre de tentative de connexion à un hôte lors de son monitoring (Surveillance).

  • -t : Nombre d’hôtes monitorés en simultanés.

  • -p : Permettre à l’hyperviseur d’effectué plusieurs tâches en simultanées.

  • -s : Pour <shell>, permettre de monitorer les hyperviseurs à l’aide de commande (Bash par défaut).

  • -d : Définir la stratégie pour les snapshot par défaut, il peut être soit en « détacher » ou « suspendre », le paramètre est mis en suspendre par défaut.

Quand nous avons définis l’ensemble de nos paramètres dans ce fichier, nous allons à présent pouvoir ajouter notre cluster VCenter.

Nous pouvons voir avec la commande onehost list, que nous en possédons aucun :

Nous allons ajouter notre VCenter (10.1.1.15) à l’aide de la commande : onevcenter hosts –vcenter <IP/FQDN du VCenter> --vuser <CompteVcenter> --vpass <motdepasse>

Dans mon cas, je n’ai pas créé de compte administrateur dans la console VCenter, pour les manipulations entre OpenNebula et le Vcenter.

Si nous reprenons l’ensemble des informations de connexion, j’ai lancer la commande : onevcenter hosts –vcenter 10.1.1.15 --vuser administrator@vsphere.local –vpass OPEN@ne2017

Nous pouvons voir que la connexion au datacenter se réalise correctement et il detecte notre datacenter, dans mon cas « GARREAU ».

Cliquer sur y pour pouvoir l’ajouter.

Puis cliquer sur y pour importer notre cluster nommée CLST01.

Il nous retourne le message ci-dessous pour nous dire qu’il a bien ajouté notre cluster correctement :

OpenNebula host CLST01 with id 2 successfully created

Nous pouvons voir dans l’interface Web que nous avons bien un cluster d’ajouté :

Configuration de plusieurs sous-menus

Dans cette partie, je vais présenter certains menus disponibles et qui permette de réaliser des tâches de création de machines virtuelles.

Création d’un template de machine virtuelle.

Un template va nous permettre de mettre à disposition de nos différents clients des machines virtuelles préconfigurés.

Nous allons pouvoir en créer en fonction des différents systèmes d’exploitation. Mais également avec des performances différentes, en termes de processeurs, de mémoire vive, de taille de disque(s) dur(s), carte(s) réseau(x).

Nous allons pouvoir également lui renseigner un coût (cost en anglais). Dans le cas, que chaque utilisateur achète un nombre de crédit, il va par la suite pouvoir déployer un nombre de machines virtuelles en fonction des crédits qu’il dispose.

Par la suite, nous allons pouvoir spécifier différents droits sur ces templates, que ce soit des droits de modifications, mais également des droits pour un utilisateur de pouvoir déployer ou non ce template.

Création d’un réseau virtuel.

Nous allons voir dans cette partie comment créer un réseau virtuel. Dans le cas d’un usage d’OpenNebula pour un portal Self-Service disponible pour plusieurs clients. Il va falloir cloisonner l’ensemble des différents réseaux des clients pour qu’ils puissent communiquer seulement avec les machines virtuelles qu’ils possèdent.

Nous allons pouvoir lui renseigner un réseau IP avec une plage d’adresse disponible en spécifiant la première adresse et le nombres d’adresses qu’on veut rendre disponible :

Création d’une machine virtuelle.

Nous avons actuellement un template de machine virtuelle et un réseau virtuel. A partir de ces deux composants nous allons pouvoir provisionner une machine virtuelle.

Pour provisionner une machine virtuelle, il va juste falloir aller dans le menu Instantes > VMs.

Par la suite, nous allons devoir choisir le template que nous souhaitons utiliser en précisant un nom et le nombre d’instances (Machines virtuelles) que nous souhaitons.

De ce faite l’ensemble des informations : Mémoire, Processeurs et VCPU vont se renseigner automatiquement.

Dans l’exemple en bas, j’ai pris le template nommé 2012R2 :

Par la suite, nous allons pouvoir choisir le réseau que nous souhaitons utiliser. Ci-dessous, j’ai pris le réseau nommée CLIENT1 :

Conclusion de la solution

Je ne suis pas rentré en détail dans les différents menus, cette solution est très complète et possède un certain nombre de documentations en fonction des différentes versions, que vous pouvez trouver à ce lien : https://opennebula.org/documentation/

Mais également un forum pour répondre aux différentes problématiques que vous pouvez trouver à ce lien : https://forum.opennebula.org/

De plus, vous pouvez trouver une communauté francophone à ce lien : https://groups.google.com/forum/#!forum/opennebula-usersfr

Cette solution est très simple à mettre en place et possède une large communauté pour répondre aux différentes questions. Elle permet à une société de répondre à la problématique de Cloud Provider, ce qui correspond à gestion d’une solution de portail de Self-service pour provisionner des machines virtuelles en automatique pour ses clients.

Elle peut également servir à une société qui possède des employés qui n’ont pas un profil système et réseau. Je pense plus particulièrement à des développeurs qui aurait un besoin temporaire de machines virtuelles pour réaliser leurs tests. Ces derniers par le biais de la connexion LDAP pourront se connecter avec leur compte Active Directory et provisionner des machines virtuelles, puis les effacer à la suite de leurs tests.

Cette solution est très complète car elle permet d’automatiser la création de machines virtuelles à l’aide de template préconfigurée et de différents droits d’accès.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels