Proof of Concept : OpenStack Kolla avec Ansible et Docker
OpenStack est un assemblage complexe de plusieurs projets. Il est difficile de maîtriser tous ses modules, de les maintenir en condition opérationnelle, et d’intégrer les nouvelles fonctionnalités arrivant tous les six mois.
Il est vital que l’infrastructure devienne aussi agile que les applications qu’elle héberge. OpenStack doit rentrer dans le modèle micro-services et DevOps. Tout cela est possible avec Kolla.
Kolla est le projet qui simplifie le déploiement et la gestion d’OpenStack. Monter une démo, tester une nouvelle configuration, mettre à jour un module ou une dépendance, tout cela devient simple.
Kolla se base sur deux technologie Docker et Ansible.
Docker permet de packager l’ensemble des services OpenStack. La force de Docker est de pouvoir fournir un système d’isolation entre les services ainsi qu’un moyen simple de les installer sans se soucier des machines cibles. Il est possible de préparer une maquette sur un environnement A, puis la répliquer facilement sur un environnement B.
Ansible est l’outil qui permet d’orchestrer le déploiement, la configuration et la mise à jour. Le plus d’Ansible est qu’il n’y a pas d’agent à installer sur les machines cibles. Tout s’éxécute via SSH.
Kolla peut être considéré comme la suite du projet TripleO. Mais les conteneurs Docker remplacent les images RAW installées via Ironic. Dans les versions futurs, Kolla utilisera Kubernetes pour assurer la redondance et la disponibilité des services.
Dernier point, il ne faut pas confondre les projets Kolla et Magnum.
- Kolla permet de déployer OpenStack sur un environnement Docker
- Magnum permet de déployer un environnement Docker depuis OpenStack
Proof of Concept
Ce PoC a été créé pour la présentation Meetup Cloud Infra Talk #3.
- Retrouvez les futurs Meetup Cloud Infra Talk
- Slides de la présentation : Cloud-InfraTalk-Kolla_v1.pdf
Le but de ce PoC est d’installer sur une même machines tous les services OpenStack, puis relancer des services avec une configuration.
Installation de Kolla et préparation des serveurs cibles
La première phase consiste à installer le projet Kolla et bootstraper les serveurs cibles.
yum -y install epel-release
yum -y install python-pip ansible
yum -y install python-devel libffi-devel openssl-devel gcc
pip install -U pip
curl -sSL https://get.docker.io | bash
pip install kolla
pip install kolla-ansible
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/all-in-one .
vim /etc/kolla/globals.yml
kolla-genpwd
kolla-ansible bootstrap-servers -i all-in-one
Déploiement des services Openstack
Deuxième phase, récupérer les images Docker et les pousser vers les serveurs cibles.
La phase de post déploiement sert à générer un fichier de connexion admin-openrc.sh.
kolla-ansible pull -i all-in-one
kolla-ansible deploy -i all-in-one
kolla-ansible post-deploy -i all-in-one
pip install python-openstackclient
Reconfiguration d’un service
Dans ce PoC nous avons volontairement monter un défaut de configuration du service nova-compute. Dans cette dernière phase nous reconfigurons le service en erreur pour qu’il utilise la technologie Qemu au lieu de KVM.
source /etc/kolla/admin-openrc.sh
/usr/share/kolla-ansible/init-runonce