Oracle® Solaris 11.2 での OpenStack のインストールと構成

印刷ビューの終了

更新: 2015 年 4 月
 
 

MySQL のインストール

多くの OpenStack サービスは、重要なリソース、使用状況、およびその他の情報を追跡するためにデータベースを保持します。デフォルトでは個々の SQLite データベースがこの目的で指定されますが、単一ノード構成の場合に便利です。特に本番環境でマルチノード構成を使用する場合は、この情報の格納に MySQL データベースなどの別のデータベースを使用することをお薦めします。

OpenStack サービス間の通信は Advanced Message Queuing Protocol (AMQP) によって実行されます。Oracle Solaris で AMQP は RabbitMQ によって実装されます。RabbitMQ は必須サービスです。通常、クラウド内の 1 つのノードで RabbitMQ を実行するように構成します。このアーキテクチャーでは、RabbitMQ がコントローラノードで実行するように構成します。

MySQL データベースをインストールする方法

  1. MySQL サーバーとパッケージをインストールします。
    controller# pkg install mysql-55 mysql-55/client python-mysql \
    rabbitmq markupsafe rad-evs-controller
  2. RabbitMQ サービスを有効にします。
    controller# svcadm enable rabbitmq
    controller# svcadm restart rad:local
  3. (オプション) 管理および API トラフィック専用の IP アドレスを使用している場合は、そのアドレスを /etc/mysql/5.5/my.cnf に追加します。
    bind-address=$CONTROLLER_ADMIN_NODE_IP
  4. MySQL サービスを有効にします。
    controller# svcadm enable mysql
  5. MySQL サーバーの root パスワードを設定します。
    controller# mysqladmin -u root password MySQL-root-password
  6. MySQL を構成します。

    OpenStack によって使用されるテーブルを作成します。これらのデータベースへの排他的アクセスを提供するために、コントローラノード上のサービスに特権を付与します。

    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