All-in-one OpenStack 16.1 インストール
背景
OpenShift環境を構築するにあたって、OpenShiftインストーラーが対応している環境が必要です。AWSなどいくつか対応していますが、ここではOpenStackを試してみました。
参考資料
All-in-one OSP
本来OSPは複数のサーバーにコンポーネントを分散してデプロイするものですが、検証用に サーバー1台にインストールする手順 が公開されているので、これに従ってインストールします。
未解決の問題
このドキュメントの手順では、以下の問題が残っています。
- SELinux
- この手順では SELinux のルールが不十分なので追加の設定が必要です。
 
 - OS再起動時の安定性
- OSを再起動すると、タイミングの問題なのか各コンポーネントにアクセスできない場合があります。
 
 - ネットワークの安定性
- OVSがエラーを出力する場合があります。
 
 - Swiftストレージの容量確認
- Swiftストレージに1TBを割り当てたつもりですが、実際に設定できたか確認できていません。
 
 
システム要件 (Quick Start Guide 1.1)
ネットワークインターフェースが2つ必要です。例えば以下のように設定します。
- インターフェース eth0
- default network 192.168.122.0/24
 - gateway 192.168.122.1
 
 - インターフェース eth1
- management network 192.168.25.0/24
 - gateway 192.168.25.1
 
 
サンプル設定
このページでは、以下のように設定します。
- ホスト名
 - osp.example.com
 - eth0 IPアドレス
 - 192.168.122.2
 - eth1 IPアドレス
 - 192.168.25.2
 - DNS server
 - 192.168.25.1
 
対象のハードウェア
- CPU
 - Intel Xeon E5-2670 10 Core 20 Thread x 2。
 - Memory
 - 512GB
 - SSD
 - 256GB x 2台。まとめてシステム領域に使用。
 - SSD
 - 1TB x 2台。それぞれ、Cinder用、Swift用。
 
事前準備
- ルーターの設定
 eth0、eth1に固定IPを設定します。- DNS設定
 osp.example.comにeth1の固定IPを設定します。- RHEL 8.2インストール
 - 製品ドキュメントに従ってインストール。
 - ホスト名設定
 # hostnamectl set-hostname osp.example.com
ドキュメントと異なる設定
- Cinder volume
 - ドキュメントの手順では、10GBのループバックデバイスを作成してCinder volumeに割り当てていますが、ここではSSDを1台割り当てます。
 - Swift volume
 - ドキュメントの手順では、システムストレージを利用します。ここではそれに加えてSSDを1台割り当てます。
 
インストール手順
ドキュメントに記載されている部分は説明を省きます。
- Chapter 3 の手順に従ってユーザー作成、システムの登録、OpenStackのインストーラー(TripleO)のインストールを行います。
 - Chapter 4 の手順に従って 
containers-prepare-parameters.yamlとstandalone_parameters.yamlを作成します。containers-prepare-parameters.yamlは記載の手順で問題ありません。standalone_parameters.yamlに関しても記載の手順でほとんど問題ありませんが、一点補足します。CloudDomainにexample.comを指定すると、OSPはosp.example.comを参照し、ホスト名と一致します。
 - Cinder volumeの設定を変更します。
- 編集中
 
 Swift volumeを設定します。
この環境では、はSwift用のSSDは
/dev/sddです。fdiskでsdd1パーティションを作成後します。その後にXFSでフォーマットします。mkfs.xfs /dev/sdd1 mkdir -p /srv/node/sdd1
/etc/fstabに/dev/sdd1 /srv/node/sdd1 xfs defaults 0 2を追加します。- Chapter 5 の手順に従って、OpenStackをインストールします。
 
over cloudを設定
9.3. Example 3 の手順に従ってOvercloudを設定します。この環境では、以下のように環境変数を設定します。
export OS_CLOUD=standalone export GATEWAY=192.168.25.1 export STANDALONE_HOST=192.168.25.2 export PUBLIC_NETWORK_CIDR=192.168.25.0/24 export PRIVATE_NETWORK_CIDR=192.168.100.0/24 export PUBLIC_NET_START=192.168.25.10 export PUBLIC_NET_END=192.168.24.254 export DNS_SERVER=192.168.25.1
手順を実施すると、 ssh cirros@<FLOATING_IP> にアクセスできます。
swiftなどのコマンド実行に必要な環境変数
この環境でSwiftコマンドなどを実行すると、以下のエラーが発生します。
$ swift list Auth version 1.0 requires ST_AUTH, ST_USER, and ST_KEY environment variables to be set or overridden with -A, -U, or -K. Auth version 2.0 requires OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, and OS_TENANT_NAME OS_TENANT_ID to be set or overridden with --os-auth-url, --os-username, --os-password, --os-tenant-name or os-tenant-id. Note: adding "-V 2" is necessary for this.
os-auth-url などを環境変数かオプションで設定する必要がありますが、この値は、インストール時に作成されている standalone-ansible-xxxxxxxx/Standalone/scale_tasks.yaml にありました。
    OS_AUTH_TYPE: password
    OS_AUTH_URL: http://192.168.25.2:5000/v3
    OS_IDENTITY_API_VERSION: 3
    OS_PASSWORD: PASSWORDEXAMPLE
    OS_PROJECT_DOMAIN_NAME: Default
    OS_PROJECT_NAME: admin
    OS_USERNAME: admin
    OS_USER_DOMAIN_NAME: Default