OpenStackの勉強のために自宅のMacにOpenStackをインストールしてみました。その時のインストール手順を紹介いたします。
OpenStackのインストールはできてしまえば簡単なのですが、はじめにインストールしようとしたときには、だいぶ手こずりました。
ここではPackstackを使ってOpenStackのコンポーネントを一括でインストールします。PackstackはRDOが提供するPuppetベースのインストーラーです。RDOはRedHatベースシステム(Redhat Enterprise Linux、CentOS、Fedora)でOpenStackを利用する人々のコミュニティです。
OpenStack構築環境
- macOS Big Sur(バージョン 11.2.1)
- VirtualBox(バージョン 6.1.18 r142142)
- CentOS 8(CentOS Linux release 8.4.2105)
構成はMac miniのVirtualBox仮想環境にCentOS 8をインストールし、そのCentOSにOpenStack環境を構築します。
VirtualBoxのゲストOSとしてCentOS8を構築する
まずは、OpenStackを構築するための基盤としてCentOS8を作成します。CentOS8は以下のサイズで作成しました。
- メモリ:8G
- Diskサイズ:1TB
無用なトラブルを避けるためパッケージは最小限(minimal)でインストールします。 それとOpenStackをインストールするにはインターネットへの接続が必要ですので、 CentOS8がインターネットに接続できるように構成します。
CentOS8のネットワーク接続構成は、おそらくどのようなものでも構いません。 私の実施した構成ではインターフェイスを1つ用意してNATでインターネットに接続するように構成しました。
CentOS(ゲストOS)の構築の方法はインターネットにたくさんの情報がありますので、ここでの詳細な説明は割愛させて頂きます。
CentOS8がインストールできたら、いくつか設定を変更します。なお、CentOSでのこの後の作業は全てrootユーザーで実施しています。
NetworkManagerの無効化
まず、NetworkManagerを無効化します。
# systemctl stop NetworkManager.service # systemctl disable NetworkManager.service
network.serviceが使用できるようにnetwork-scriptsパッケージをインストールします。
# dnf install network-scripts -y
パッケージをインストールしたら/etc/sysconfig/network-scripts/ifcfg-ethXでネットワークの設定をします。この時点ではインターネットに接続できるように構成すればOKです。
設定が完了したら、network.serviceを開始し、自動起動の設定も有効化します。
# systemctl start network.service # systemctl enable network.service
ファイアーウォールの無効化
ファイアーウォールを無効化します。
# systemctl stop firewalld # systemctl disable firewalld
SELinuxの無効化
SELinuxも無効化します。次のように「SELINUX=enforcing」の部分を以下のように変更します。
# vi /etc/selinux/config ... SELINUX=disabled ...
ここまで修正したらOSを再起動します。
# reboot
PackstackによるOpenStackのインストール
あとはRDOのWebページの記載の通り、以下のコマンドを実施してOpenStackをインストールします。
# dnf update -y # dnf config-manager --enable powertools # dnf install -y centos-release-openstack-victoria # dnf update -y # dnf install -y openstack-packstack # packstack --allinone
「packstack --allinone」の実行は環境によると思いますが、数十分以上かかります。エラーがないことを祈って待ちましょう。 次のように正常に完了すればOpenStackのインストールは完了です。
# packstack --allinone ... Applying Puppet manifests [ DONE ] Finalizing [ DONE ] **** Installation completed successfully ****** Additional information: * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS plugin. Geneve will be used as the encapsulation method for tenant networks * A new answerfile was created in: /root/packstack-answers-20210619-105534.txt * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components. * File /root/keystonerc_admin has been created on OpenStack client host 10.0.2.15. To use the command line tools you need to source the file. * To access the OpenStack Dashboard browse to http://10.0.2.15/dashboard . Please, find your login credentials stored in the keystonerc_admin in your home directory. * Because of the kernel update the host 10.0.2.15 requires reboot. * The installation log file is available at: /var/tmp/packstack/20210619-105534-2v9jc12_/openstack-setup.log * The generated manifests are available at: /var/tmp/packstack/20210619-105534-2v9jc12_/manifests
OpenStackの管理GUI(Horizon)にログイン
OpenStackのインストールが完了したら、管理GUI(Horizon)にログインできるようします。ひとまず、CentOSのGUIからログインできるようにします。
CentOSのGUI環境をインストールする
minimalでパッケージをインストールした場合、CentOSのGUI環境のパッケージはインストールされていません。GUI環境が利用できるように必要なパッケージをインストールします。
# dnf group install Workstation
OS起動時にGUIで起動するように設定してから再起動します。
# systemctl set-default graphical.target # reboot
OpenStackの管理GUI(Horizon)へログインする
OSがGUIで立ち上がってきたら、OSの初期設定が始まると思いますのでささっと終わらします。GUI環境にログインできたらWebブラウザを起動してHorizonへログインして見ましょう。
packstackのインストール完了時に以下のようなメッセージが表示されたと思います。表示されたURLにアクセスします。
* To access the OpenStack Dashboard browse to http://10.0.2.15/dashboard .
また、以下のようなメッセージも出力されたと思います。
Please, find your login credentials stored in the keystonerc_admin in your home directory.
ログインするためのadminユーザーのパスワードは、このkeystonerc_adminファイルに記載されていますので確認してください。
# cat keystonerc_admin unset OS_SERVICE_TOKEN export OS_USERNAME=admin export OS_PASSWORD='0f648e45322b4ca8' ← これ ...
URLにアクセスすると次のようなログイン画面が表示されます。「User Name」には「admin」を入力、「Password」には先ほど確認したパスワードを入力してログインします。無事にログインできればOpenStackのダッシュボードが表示されます。
CLIでopenstackコマンドを実行する
ここまでの作業でOpenStackのGUIが使えるようになりました。CLIでもopenstackコマンドを使って操作できるようにしてみましょう。それにはkeystonerc_adminファイルを読み込む必要があります。
CentOSにrootユーザーでログインします。rootユーザーのホームディレクトリ(/root)に、keystonerc_adminファイルがあると思いますので、次のようのsourceコマンドで読み込みます。
# source keystonerc_admin
するとプロンプトが変わります。これでopenstackコマンドが使えるようになります。
[root@localhost ~]# source keystonerc_admin [root@localhost ~(keystone_admin)]# openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +----+-----------+-------+------+-----------+-------+-----------+
VirtualBoxのGUIが操作できない
以上で本題のOpenStackのインストールについては全て説明しましたが、VirtualBoxのGUIがしばらくすると操作できない事象が発生しました。キーボードでは操作できますし、CPUやメモリの使用率を確認しても特に気になる点はありませんでした。
根本原因はわかりませんでしたが、次のようにVirtualBoxのマウス統合機能をオフにすればGUI操作できるようになります。
VirtualBoxのメニューから[input]をクリックし、[Mouse Integration]をクリックしてチェックを外す。
なおマウス統合機能をオフにして、VirtualBoxのコンソール画面を操作すると、マウスの制御がコンソール画面に奪われます。ホストOS(Mac)に制御を戻す場合は、左command(Windowsの場合は左Alt)キーを押す必要があります。
おわりに
OpenStackのインストールはエラー等が発生しなければ時間は多少かかりますが難しいことはありません。ただし、今回は試しにインストールできるところまでの確認でしたので、OpenStack環境が正しく動作するかはまた別の話です。それは今後確認していきたいと思います。
最初は本を参考にインストールを試してみましたが、本の情報が少し古かったのが良くなかったのが全くうまくいかず、いくつものエラーに悩まされました。本記事が皆様の参考になれば幸いです。