Installation et configuration d'OpenStack dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Avril 2015
 
 

Installation de MySQL

De nombreux services OpenStack permettent à une base de données d'assurer le suivi des ressources critiques, leur utilisation et d'autres informations. Par défaut, les bases de données individuelles SQLite sont indiquées dans ce but, et s'avèrent utiles pour la configuration mononoeud. Pour les configurations multinoeuds, notamment dans un environnement de production, d'autres bases de données, telles que la base de données MySQL, sont recommandées pour le stockage de ces informations.

La communication entre les services OpenStack est effectuée par le protocole AMQP (Advanced Message Queuing Protocol). Sous Oracle Solaris, AMQP est implémenté par RabbitMQ. Le service RabbitMQ est obligatoire. Un seul noeud du Cloud est généralement configuré pour exécuter RabbitMQ. Dans cette architecture, RabbitMQ est configuré pour s'exécuter sur le noeud de contrôleur.

Installation d'une base de données MySQL

  1. Installez le serveur et les packages MySQL.
    controller# pkg install mysql-55 mysql-55/client python-mysql \
    rabbitmq markupsafe rad-evs-controller
  2. Activez les services RabbitMQ.
    controller# svcadm enable rabbitmq
    controller# svcadm restart rad:local
  3. (Facultatif) Si vous utilisez une adresse IP dédiée pour l'administration et le trafic des API, ajoutez cette adresse dans le fichier /etc/mysql/5.5/my.cnf :
    bind-address=$CONTROLLER_ADMIN_NODE_IP
  4. Activez le service MySQL.
    controller# svcadm enable mysql
  5. Définissez le mot de passe root du serveur MySQL.
    controller# mysqladmin -u root password MySQL-root-password
  6. Configurez MySQL.

    Créez les tables qui seront utilisées par OpenStack. Accordez les privilèges aux services sur le noeud de contrôleur afin de fournir un accès exclusif à ces bases de données.

    controller# mysql -u root -p
    Enter password: MySQL-root-password
    mysql> drop database if exists nova;
    mysql> drop database if exists cinder;
    mysql> drop database if exists glance;
    mysql> drop database if exists keystone;
    mysql> drop database if exists neutron;
    mysql> drop database if exists heat;
    mysql> create database cinder;
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on cinder.* to 'cinder'@'$CONTROLLER_ADMIN_NODE' \
    identified by 'service-password';
    mysql> grant all privileges on cinder.* to 'cinder'@'$VOLUME_IP' \
    identified by 'service-password';
    mysql> create database glance;
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on glance.* to 'glance'@'$CONTROLLER_ADMIN_NODE' \
    identified by 'service-password';
    mysql> create database keystone;
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on keystone.* to 'keystone'@'$CONTROLLER_ADMIN_NODE' \
    identified by 'service-password';
    mysql> create database nova;
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on nova.* to 'nova'@'$CONTROLLER_ADMIN_NODE' \
    identified by 'service-password';
    mysql> create database neutron;
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on neutron.* to 'neutron'@'$CONTROLLER_ADMIN_NODE' \
    identified by 'service-password';
    mysql> create database heat
    mysql> default character set utf8
    mysql> default collate utf8_general_ci;
    mysql> grant all privileges on heat.* to 'heat'@'$CONTROLLER_ADMIN_NODE' \
    mysql> identified by 'service-password';
    mysql> flush privileges;
    mysql> quit