Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第4章 アンダークラウドのインストール
Red Hat OpenStack Platform 環境の構築では、最初にアンダークラウドシステムに director をインストールします。これには、必要なサブスクリプションやリポジトリーを有効化するために複数の手順を実行する必要があります。
4.1. director のインストールユーザーの作成
director のインストールプロセスでは、root 以外のユーザーがコマンドを実行する必要があります。以下のコマンドを使用して、stack
という名前のユーザーを作成して、パスワードを設定します。
[root@director ~]# useradd stack [root@director ~]# passwd stack # specify a password
sudo
を使用する際に、このユーザーがパスワードを要求されないようにします。
[root@director ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack [root@director ~]# chmod 0440 /etc/sudoers.d/stack
新規作成した stack
ユーザーに切り替えます。
[root@director ~]# su - stack [stack@director ~]$
stack
ユーザーで director のインストールを続行します。
4.2. テンプレートとイメージ用のディレクトリーの作成
director はシステムのイメージと Heat テンプレートを使用して、オーバークラウド環境を構築します。これらのファイルを整理するには、イメージとテンプレート用にディレクトリーを作成するように推奨します。
$ mkdir ~/images $ mkdir ~/templates
本書の他の項では、2 つのディレクトリーを使用して特定のファイルを保存します。
4.3. システムのホスト名設定
director では、インストールと設定プロセスにおいて完全修飾ドメイン名が必要です。つまり、director のホストのホスト名を設定する必要がある場合があります。以下のコマンドで、ホストのホスト名をチェックします。
$ hostname # Checks the base hostname $ hostname -f # Checks the long hostname (FQDN)
いずれのコマンドでも正しいホスト名が返されない場合やエラーが報告される場合には、hostnamectl
でホスト名を設定します。
$ sudo hostnamectl set-hostname manager.example.com $ sudo hostnamectl set-hostname --transient manager.example.com
director では、/etc/hosts
にシステムのホスト名とベース名も入力する必要があります。たとえば、システムの名前が manager.example.com
の場合には、/etc/hosts
に以下のように入力する必要があります。
127.0.0.1 manager.example.com manager localhost localhost.localdomain localhost4 localhost4.localdomain4
4.4. システムの登録
Red Hat OpenStack Platform director をインストールするには、まず Red Hat サブスクリプションマネージャーを使用してホストシステムを登録し、必要なチャンネルをサブスクライブします。
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
$ sudo subscription-manager register
Red Hat OpenStack Platform director のエンタイトルメントプールを検索します。
$ sudo subscription-manager list --available --all
上記のステップで特定したプール ID を使用して、Red Hat OpenStack Platform 9 のエンタイトルメントをアタッチします。
$ sudo subscription-manager attach --pool=pool_id
デフォルトのリポジトリーをすべて無効にしてから、必要な Red Hat Enterprise Linux リポジトリーを有効にします。
$ sudo subscription-manager repos --disable=* $ sudo subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-openstack-9-rpms --enable=rhel-7-server-openstack-9-director-rpms --enable=rhel-7-server-rh-common-rpms
これらのリポジトリーには、director のインストールに必要なパッケージが含まれます。
上記にリストしたリポジトリーのみを有効にします。追加のリポジトリーを使用すると、パッケージとソフトウェアの競合が発生する場合があります。他のリポジトリーは有効にしないでください。
システムで更新を実行して、ベースシステムパッケージを最新の状態にします。
$ sudo yum update -y $ sudo reboot
システムは、director をインストールできる状態になりました。
4.5. director パッケージのインストール
以下のコマンドを使用して、director のインストールおよび設定に必要なコマンドラインツールをインストールします。
$ sudo yum install -y python-tripleoclient
これにより、director のインストールに必要なパッケージがすべてインストールされます。
4.6. director の設定
director のインストールプロセスには、ネットワーク設定を判断する特定の設定が必要です。この設定は、stack
ユーザーのホームディレクトリーに undercloud.conf
として配置されているテンプレートに保存されています。
Red Hat は、インストールに必要な設定を判断しやすいように、基本テンプレートを提供しています。このテンプレートは、stack
ユーザーのホームディレクトリーにコピーします。
$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
基本テンプレートには、以下のパラメーターが含まれています。
- local_ip
-
director のプロビジョニング NIC 用に定義する IP アドレス。これは、director が DHCP および PXE ブートサービスに使用する IP アドレスでもあります。環境内の既存の IP アドレスまたはサブネットと競合するなど、プロビジョニングネットワークに別のサブネットを使用する場合以外は、この値はデフォルトの
192.0.2.1/24
のままにしてください。 - network_gateway
オーバークラウドインスタンスのゲートウェイ。外部ネットワークにトラフィックを転送するアンダークラウドのホストです。director に別の IP アドレスを使用する場合または外部ゲートウェイを直接使用する場合以外は、この値はデフォルト (
192.0.2.1
) のままにします。注記director の設定スクリプトは、適切な
sysctl
カーネルパラメーターを使用して IP フォワーディングを自動的に有効にする操作も行います。- undercloud_public_vip
-
director のパブリック API 用に定義する IP アドレス。他の IP アドレスまたはアドレス範囲と競合しないプロビジョニングネットワークの IP アドレスを使用します。たとえば、
192.0.2.2
で、director の設定により、この IP アドレスは/32
ネットマスクを使用するルーティングされた IP アドレスとしてソフトウェアブリッジに接続されます。 - undercloud_admin_vip
-
director の管理 API 用に定義する IP アドレス。他の IP アドレスまたはアドレス範囲と競合しないプロビジョニングネットワークの IP アドレスを使用します。たとえば、
192.0.2.3
で、director の設定により、この IP アドレスは/32
ネットマスクを使用するルーティングされた IP アドレスとしてソフトウェアブリッジに接続されます。 - undercloud_service_certificate
- OpenStack SSL 通信の証明書の場所とファイル名。理想的には、信頼できる認証局から、この証明書を取得します。それ以外の場合は、「付録A SSL/TLS 証明書の設定」のガイドラインを使用して独自の自己署名の証明書を作成します。これらのガイドラインには、自己署名の証明書か認証局からの証明書に拘らず、証明書の SELinux コンテキストを設定する方法が含まれています。
- local_interface
director のプロビジョニング NIC 用に選択するインターフェース。これは、director が DHCP および PXE ブートサービスに使用するデバイスでもあります。どのデバイスが接続されているかを確認するには、
ip addr
コマンドを使用します。以下にip addr
コマンドの出力結果の例を示します。2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:75:24:09 brd ff:ff:ff:ff:ff:ff inet 192.168.122.178/24 brd 192.168.122.255 scope global dynamic eth0 valid_lft 3462sec preferred_lft 3462sec inet6 fe80::5054:ff:fe75:2409/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noop state DOWN link/ether 42:0b:c2:a5:c1:26 brd ff:ff:ff:ff:ff:ff
この例では、外部 NIC は
eth0
を、プロビジョニング NIC は未設定のeth1
を使用します。今回は、local_interface
をeth1
に設定します。この設定スクリプトにより、このインターフェースがinspection_interface
パラメーターで定義したカスタムのブリッジにアタッチされます。- network_cidr
-
オーバークラウドインスタンスの管理に director が使用するネットワーク。これはプロビジョニングネットワークです。プロビジョニングネットワークに別のサブネットを使用しない限り、この値はデフォルト (
192.0.2.0/24
) のままにします。 - masquerade_network
-
外部にアクセスするためにマスカレードするネットワークを定義します。これにより、プロビジョニングネットワークにネットワークアドレス変換 (NAT) の範囲が提供され、director 経由で外部アクセスが可能になります。プロビジョニングネットワークに別のサブネットを使用しない限り、この値はデフォルト (
192.0.2.0/24
) のままにします。 - dhcp_start; dhcp_end
- オーバークラウドノードの DHCP 割り当て範囲 (開始アドレスと終了アドレス)。ノードを割り当てるのに十分な IP アドレスがこの範囲に含まれるようにします。
- inspection_interface
-
ノードのイントロスペクションに director が使用するブリッジ。これは、director の設定により作成されるカスタムのブリッジです。
LOCAL_INTERFACE
でこのブリッジをアタッチします。これは、デフォルトのbr-ctlplane
のままにします。 - inspection_iprange
-
director のイントロスペクションサービスが PXE ブートとプロビジョニングプロセスの際に使用する IP アドレス範囲。この範囲の開始アドレスと終了アドレスの定義には、
192.0.2.100,192.0.2.120
などのように、コンマ区切りの値を使用します。この範囲には、お使いのノードの IP アドレスが含まれており、dhcp_start
とdhcp_end
の範囲と競合がないようにします。 - inspection_extras
-
イントロスペクション時に追加のハードウェアコレクションを有効化するかどうかを定義します。イントロスペクションイメージでは
python-hardware
またはpython-hardware-detect
パッケージが必要です。 - inspection_runbench
-
ノードイントロスペクション時に一連のベンチマークを実行します。有効にするには、
true
に設定します。このオプションは、登録ノードのハードウェアを検査する際にベンチマーク分析を実行する場合に必要です。詳細は、「ノードのハードウェアの検査」を参照してください。 - undercloud_debug
-
アンダークラウドサービスのログレベルを
DEBUG
に設定します。この値はtrue
に設定して有効化します。 - enable_tempest
-
検証ツールをインストールするかどうかを定義します。デフォルトは、
false
に設定されていますが、true
で有効化することができます。 - ipxe_deploy
-
iPXE か標準の PXE のいずれを使用するか定義します。デフォルトは
true
で iPXE を有効化します。false
に指定すると、標準の PXE に設定されます。詳しい情報は、Red Hat カスタマーポータルの「Changing from iPXE to PXE in Red Hat OpenStack Platform director」を参照してください。 - store_events
- アンダークラウドの Ceilometer にイベントを保存するかどうかを定義します。
- undercloud_db_password、undercloud_admin_token、undercloud_admin_password、undercloud_glance_passwm など
残りのパラメーターは、全 director サービスのアクセス詳細を指定します。値を変更する必要はありません。
undercloud.conf
で空欄になっている場合には、これらの値は director の設定スクリプトによって自動的に生成されます。設定スクリプトの完了後には、すべての値を取得することができます。重要これらのパラメーターの設定ファイルの例では、プレースホルダーの値に
<None>
を使用しています。これらの値を<None>
に設定すると、デプロイメントでエラーが発生します。
これらのパラメーターの値は、お使いのネットワークに応じて変更してください。完了したら、ファイルを保存して以下のコマンドを実行します。
$ openstack undercloud install
このコマンドで、director の設定スクリプトを起動します。director により、追加のパッケージがインストールされ、undercloud.conf
の設定に合わせてサービスを設定します。このスクリプトは、完了までに数分かかります。
設定スクリプトにより、完了時には 2 つのファイルが生成されます。
-
undercloud-passwords.conf
: director サービスの全パスワード一覧 -
stackrc
: director のコマンドラインツールへアクセスできるようにする初期化変数セット
stack
ユーザーを初期化してコマンドラインツールを使用するには、以下のコマンドを実行します。
$ source ~/stackrc
director のコマンドラインツールが使用できるようになりました。
4.7. オーバークラウドノードのイメージの取得
director では、オーバークラウドのノードをプロビジョニングする際に、複数のディスクが必要です。必要なディスクは以下のとおりです。
- イントロスペクションのカーネルおよび ramdisk: PXE ブートでベアメタルシステムのイントロスペクションに使用
- デプロイメントカーネルおよび ramdisk: システムのプロビジョニングおよびデプロイメントに使用
- オーバークラウドカーネル、ramdisk、完全なイメージ: ノードのハードディスクに書き込まれるベースのオーバークラウドシステム
rhosp-director-images
および rhosp-director-images-ipa
パッケージからこれらのイメージを取得します。
$ sudo yum install rhosp-director-images rhosp-director-images-ipa
stack
ユーザーのホーム (/home/stack/images
) の images
ディレクトリーにアーカイブを展開します。
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-9.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-9.0.tar; do tar -xvf $i; done
これらのイメージを director にインポートします。
$ openstack overcloud image upload --image-path /home/stack/images/
このコマンドにより、bm-deploy-kernel
、bm-deploy-ramdisk
、overcloud-full
、overcloud-full-initrd
、overcloud-full-vmlinuz
のイメージが director にアップロードされます。これらは、デプロイメントおよびオーバークラウド用のイメージです。スクリプトにより、director の PXE サーバーにイントロスペクションイメージもインストールされます。
CLI でイメージの一覧を表示します。
$ openstack image list +--------------------------------------+------------------------+ | ID | Name | +--------------------------------------+------------------------+ | 765a46af-4417-4592-91e5-a300ead3faf6 | bm-deploy-ramdisk | | 09b40e3d-0382-4925-a356-3a4b4f36b514 | bm-deploy-kernel | | ef793cd0-e65c-456a-a675-63cd57610bd5 | overcloud-full | | 9a51a6cb-4670-40de-b64b-b70f4dd44152 | overcloud-full-initrd | | 4f7e33f4-d617-47c1-b36f-cbe90f132e5d | overcloud-full-vmlinuz | +--------------------------------------+------------------------+
この一覧には、イントロスペクションの PXE イメージは表示されません。director は、これらのファイルを /httpboot
にコピーします。
[stack@host1 ~]$ ls -l /httpboot total 341460 -rwxr-xr-x. 1 root root 5153184 Mar 31 06:58 agent.kernel -rw-r--r--. 1 root root 344491465 Mar 31 06:59 agent.ramdisk -rw-r--r--. 1 root root 337 Mar 31 06:23 inspector.ipxe
4.8. アンダークラウドの Neutron サブネットでのネームサーバーの設定
オーバークラウドのノードには、DNS でホスト名が解決できるようにネームサーバーが必要です。ネットワークを分離していない標準のオーバークラウドでは、ネームサーバーはアンダークラウドの neutron
サブネットを使用して定義されます。環境でネームサーバーを定義するには、以下のコマンドを使用してください。
$ neutron subnet-list $ neutron subnet-update [subnet-uuid] --dns-nameserver [nameserver-ip]
サブネットを表示してネームサーバーを確認します。
$ neutron subnet-show [subnet-uuid] +-------------------+-----------------------------------------------+ | Field | Value | +-------------------+-----------------------------------------------+ | ... | | | dns_nameservers | 8.8.8.8 | | ... | | +-------------------+-----------------------------------------------+
サービストラフィックを別のネットワークに分離する場合は、オーバークラウドのノードはネットワーク環境テンプレートの DnsServer
パラメーターを使用します。これは、「ネットワークの分離」の高度な設定シナリオで説明します。
4.9. アンダークラウドのバックアップ
Red Hat では、アンダークラウドホストと Red Hat OpenStack Platform director から重要なデータをバックアップする手順を記載したガイドを提供しています。『director のアンダークラウドのバックアップと復元』を参照してください。
4.10. アンダークラウドの設定完了
これでアンダークラウドの設定が完了しました。次の章では、ノードの登録、検査、さまざまなノードロールのタグ付けなど、オーバークラウドの基本的な設定について説明します。