Hello,
Aujourd’hui je souhaite partager avec vous mon experience (rapide) avec OpenStack après quelques mois d’utilisation.
Qu’est ce que c’est ?
OpenStack est un soft open source qui permet de mettre en place son propre Cloud, public ou privé. Il est contrôlable via une API ou/et via un dashboard. OpenStack se rapproche de Amazon Web Services dans son utilisation : on retrouve les security groups, les flavors, les images ET les fonctions de l’api CloudFormation (swag hein :) ).
OpenStack propose deux projets : Compute et Object Storage. Les fonctionnalités de ces deux projets sont séparées en composants, responsables de gérer le stockage des fichiers, le réseau, …
Je me suis concentré sur la partie Compute.
L’installation
La partie vraiment pas drôle d’OpenStack, c’est son installation. Concrètement si vous voulez partir sur une petite infrastructure comme moi (1 controller, 6 computes) pour découvrir il va vous falloir OBLIGATOIREMENT un accès distant type KVM/iDrac pour ne pas avoir à passer votre vie à coté de vos serveurs. Trois guides sont disponibles actuellement sur le site d’OpenStack pour un setup simple des services :
J’ai utilisé la version Ubuntu (je compte passer sous CentOS une fois les tests finis). Le guide est extrêmement bien fait, vous êtes guidés du début à la fin, et tant que vous ne sortez pas des clous tout devrait bien se passer. Attendez vous tout de même à quelques réinstallation, au début, il est parfois plus simple de repartir sur du propre que de garder des magouille pâte à fix tout le long de votre utilisation. OpenStack s’installe sous forme de modules fonctionnants entre eux pour vous fournir le produit final, certains sont bien connus de tous : MySQL, MongoDB, RabbitMQ, Apache. D’autres un peu moins : Cinder, Nova, Telemetry, Glance, Neutron. Tout ces services, via l’api Nova, vous permettent de gérer votre cloud personnel.
Petits conseils basés sur mon experience:
- Pour gagner du temps, appelez votre nœud “maître” controller comme dans le guide et ne pas vous tromper lors d’un copier coller
- N’hésitez pas à réinstaller, une bonne base sans bug vous permettra de mieux vous en sortir une fois que vous voudrez sortir un petit peut du guide.
- Une fois un node 100% fonctionnel (compute / controller / storage) pensez à récupérer les fichiers de configuration pour les deploiements au besoin. Ainsi il vous serra plus simple de rajouter des nœuds facilement.
- Notez toutes les commandes dans un
.sh
pour gagner du temps plus tard, il vous suffira de convertir (ou non) ce .sh en Playbook ansible ou en module Puppet pour lancer votre cloud en un clic. - Pour débuter choisissez l’option de réseau la plus simple.
Utilisation
On se rapproche vraiment d’un environment AWS EC2, on peut choisir nos images, nos groups de sécurités, nos clefs ssh, attacher des volumes, lancer 500 serveurs du bouts des doigts, bref, le dashboard est simple à utiliser mais manque encore de fonctions, OpenStack est encore en développement pas de panique. Pour une petite infrastructure (ici 7 serveurs) l’installation n’est pas si compliquée que cela, on prend vite ses marques et le debug devient intuitif après 5-6 réinstallations. OpenStack supporte plusieurs solutions pour la virtualisation dont QEMU et KVM, vous pourrez donc sans soucis faire tourner tous vos OS. En plus des modules de base, OpenStack dispose d’un MarketPlace où la communauté propose ses propres intégrations, par exemple, un module nous permet de faire du RDS de AWS (Relational Database Service) directement dans notre Cloud. Le network: La partie un peu difficile à appréhender au début, une bonne lecture de la doc est conseillée. Dans une configuration simple, un network plat, on arrive vite à faire tourner nos VM’s sans trop de soucis, il n’y a pas de routeurs virtuels ni de réseaux public/private, cette solution est vite dépassée si nous voulons jouer sérieusement avec OpenStack. La solution numéro deux du guide vous permettra de répondre à plus de besoins en ajoutant les réseaux privés ainsi que les routeurs à OpenStack.
Petits conseils basés sur mon experience:
- En cas de problème avec le network les logs sont dissimulé un petit peu partout, pensez à regarder ceux de Nova et de Neutron. Pensez aussi à vérifier vos security groups (oui oui, je suis resté bloqué 24h car je n’avais pas coché une case dans mes groupes de sécurité)
- Pensez à activer la virtualisation dans votre bios :troll:
- En cas d’erreur avec le panel, essayez de reproduire l’action via l’API en CLI, les informations sont généralement plus précises
- Attention aux services fantômes qui pourraient vous donner des erreurs avec l’utilisation du panel et de l’api, parfois une visite dans la BDD vous permettra de corriger ces erreurs.
Conclusion
Si vous voulez vous monter un petit cloud rapidement, passez votre chemin : OpenStack est une usine à gaz. Dans mon utilisation c’est l’outil parfait car il me permet aussi de gagner en compétence et de comprendre le fonctionnement obscur du Cloud. Une fois le guide d’installation fini, les ennuis commencent, ajout de netapp, utilisation de Ceph (cc @dgrandhay).
La communauté est active et les mise à jours sont régulières (ce qui est à la fois un avantage et un inconvénient: qui sait ce qu’une mise à jour peut casser).
OpenStack est un outil idéal pour débuter dans le Cloud car celui-ci vous permettra d’apprendre énormément. C’est une technologie recherchée et un bon point à rajouter dans vos compétences :)