J'aimerais que le cloud de test soit opérationnel en prévision d'un déploiement éventuel de 12.04. Je me suis un peu moqué de l'UEC, mais j'ai eu beaucoup de difficulté à trouver quelque chose d'utile comme amorce pour la nouvelle pile. Il existe une documentation générique sur Diablo, mais il existe probablement beaucoup de documents déjà utiles sous Ubuntu avec lesquels un guide spécifique pourrait faire gagner du temps.
De plus, mon budget n'inclut pas les 4 à 6 000 dollars nécessaires à la mise en place d'un petit cluster fonctionnant avec le support Canonical.
Si vous voulez être opérationnel rapidement, allez plutôt ici:
Cette réponse est un regard plus détaillé sur la façon d’utiliser Juju avec OpenStack.
La plate-forme OpenStack est puissante et ses utilisations sont diverses. Cette section de la documentation concerne principalement le déploiement d'un système "standard" exécutant un système OpenStack à l'aide, entre autres, de composants Canonical tels que MAAS, Juju et Ubuntu. Le cas échéant, d’autres méthodes et logiciels seront mentionnés.
Avant de déployer des services, il est très utile de dresser un inventaire des ressources disponibles et de leur utilisation. OpenStack comprend un certain nombre de services interdépendants (Nova, Swift, etc.) qui ont chacun des demandes différentes en termes d’hôtes. Par exemple, le service Swift, qui fournit le stockage d'objet, a une exigence différente de celle du service Nova, qui fournit des ressources de calcul.
Les exigences minimales pour chaque service et recommandations sont définies dans le document officiel OpenStack Operations Guide
La composition recommandée de nœuds pour déployer OpenStack avec MAAS et Juju est que tous les nœuds du système doivent être capables d'exécuter N'IMPORTE QUEL des services. Ceci est la meilleure pratique pour la robustesse du système, car comme tout nœud physique doit échouer, un autre peut être réutilisé pour prendre sa place. Cela s'étend évidemment à toutes les exigences matérielles telles que les interfaces réseau supplémentaires.
Si, pour des raisons d'économie ou pour toute autre raison, vous choisissez d'utiliser différentes configurations matérielles, sachez que votre capacité à surmonter les défaillances matérielles sera réduite. Il sera également nécessaire de cibler les déploiements sur des nœuds spécifiques - voir la section dans le documentation MAAS sur les balises .
Nous utiliserons les charmes Juju pour déployer les composants d’OpenStack. Chaque charme contient tout ce qui est nécessaire pour configurer un service particulier. Cependant, les services individuels ont de nombreuses options de configuration, que nous voudrons modifier.
Pour rendre cette tâche plus facile et plus reproductible, nous allons créer un fichier de configuration séparé avec les options appropriées pour tous les services. Ceci est écrit dans un format YAML standard ( voir www.yaml.org si cela ne vous est pas familier ).
Voici un exemple de fichier openstack-config.yaml:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
Pour tous les services, nous pouvons configurer le openstack-Origin
pour qu'il pointe vers une source d'installation. Dans ce cas, nous nous baserons sur la valeur par défaut, qui pointera vers les sources pertinentes pour la version Ubuntu 14.04 LTS Trusty. Une configuration supplémentaire pour chaque service est expliquée dans ce document .
D'autres paramètres et options de configuration sont possibles pour le déploiement des services OpenStack. Celles-ci sont détaillées dans la documentation des charmes individuels utilisés par Juju et peuvent être inspectées en visitant le boutique en ligne de charme Juj et en recherchant le charme à l'aide du champ de recherche situé en haut à gauche de la page. les paramètres de configuration sont ensuite détaillés sous "Configuration" dans la page principale, comme indiqué:
Maintenant que la configuration est définie, nous pouvons utiliser Juju pour déployer et mettre en relation les services.
Juju nécessite une configuration minimale. Nous supposons ici qu'il a déjà été configuré pour fonctionner avec votre cluster MAAS (voir le [Guide d'installation de Juju] [juju_install] pour plus d'informations à ce sujet.
Premièrement, nous devons récupérer des images et des outils que Juju utilisera:
juju sync-tools --debug
Ensuite, nous pouvons créer l'instance bootstrap:
juju bootstrap --upload-tools --debug
Nous utilisons le commutateur upload-tools pour utiliser les versions locales des outils que nous venons de récupérer. Le commutateur de débogage donnera une sortie détaillée qui peut être utile. Ce processus peut prendre quelques minutes, car Juju crée une instance et installe les outils. Une fois terminé, vous pouvez vérifier l’état du système à l’aide de la commande suivante:
juju status
Cela devrait retourner quelque chose comme:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
Maintenant que le nœud Juju bootstrap est opérationnel, nous pouvons déployer les services requis pour effectuer notre installation OpenStack. Pour configurer correctement ces services au fur et à mesure qu'ils sont déployés, nous allons utiliser le fichier de configuration que nous avons défini précédemment en le transmettant avec le commutateur --config
à chaque commande de déploiement. Remplacez le nom et le chemin de votre fichier de configuration s'il est différent.
Il est utile mais non essentiel de déployer les services dans l'ordre indiqué ci-dessous. Il est également fortement recommandé d'ouvrir une fenêtre de terminal supplémentaire et d'exécuter la commande juju debug-log
. Cela affichera les journaux de tous les services au fur et à mesure de leur exécution, ce qui peut être utile pour le dépannage.
Il est également recommandé d’exécuter périodiquement une commande juju status
afin de vérifier que chaque service a été installé et fonctionne correctement. Juju essaiera automatiquement de récupérer la meilleure version possible du charme de Charm Store en ligne. Si vous effectuez l'installation à partir d'un réseau restreint ou fermé, il est possible de pré-extraire les charms requis. Voir [la documentation sur les charms hors ligne] [charms-offline].
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
Bien que les services soient maintenant déployés, ils ne sont pas encore connectés ensemble. Chaque service existe actuellement de manière isolée. Nous utilisons la commande juju add-relation
pour les sensibiliser et configurer les connexions et les protocoles pertinents. Cette configuration supplémentaire est prise en charge par les charmes individuels eux-mêmes.
Nous devrions commencer à ajouter des relations entre les charms en configurant le service d'autorisation Keystone et sa base de données, car nombre d'autres connexions en auront besoin:
juju add-relation keystone mysql
Nous attendons que la relation soit établie. Une fois terminé, vérifiez-le avec le statut juju:
juju status mysql
juju status keystone
Cela peut prendre quelques instants pour que ce service s’installe. Bien qu'il soit certainement possible de continuer à ajouter des relations (Juju gère une file d'attente pour les actions en attente), cela peut être contre-productif en termes de temps total, car de nombreuses relations se réfèrent aux mêmes services.
Les relations suivantes doivent également être établies:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation Swift-proxy Swift-storage
juju add-relation Swift-proxy keystone
Enfin, la sortie du statut juju doit montrer que toutes les relations sont complètes. Le cloud OpenStack est en cours d’exécution, mais il doit être peuplé de composants supplémentaires avant de pouvoir être utilisé.
Ken Pepple a publié un livre sur le déploiement d'OpenStack: http://shop.oreilly.com/product/0636920021674.do
La société de Ken (Internap) dispose du premier service de calcul en nuage OpenStack disponible dans le commerce.
http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/
Le cloud d'Internap est construit sur la plate-forme Xen Cloud (XCP) en tant qu'hyperviseur.
Le déploiement de RDO est un processus rapide et facile. La configuration d’un cloud OpenStack prend environ 15 minutes et peut aller jusqu’à 3 étapes. http://openstack.redhat.com/Quickstart