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 Subscription Manager を使用してホストシステムを登録し、必要なチャンネルをサブスクライブします。
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
$ sudo subscription-manager register
Red Hat OpenStack Platform director のエンタイトルメントプール ID を検索します。以下に例を示します。
$ sudo subscription-manager list --available --all --matches="*OpenStack*" Subscription Name: Name of SKU Provides: Red Hat Single Sign-On Red Hat Enterprise Linux Workstation Red Hat CloudForms Red Hat OpenStack Red Hat Software Collections (for RHEL Workstation) Red Hat Virtualization SKU: SKU-Number Contract: Contract-Number Pool ID: Valid-Pool-Number-123456 Provides Management: Yes Available: 1 Suggested: 1 Service Level: Support-level Service Type: Service-Type Subscription Type: Sub-type Ends: End-date System Type: Physical
Pool ID
の値を特定して、Red Hat OpenStack Platform 10 のエンタイトルメントをアタッチします。
$ sudo subscription-manager attach --pool=Valid-Pool-Number-123456
デフォルトのリポジトリーをすべて無効にしてから、必要な 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-rh-common-rpms --enable=rhel-ha-for-rhel-7-server-rpms --enable=rhel-7-server-openstack-10-rpms
これらのリポジトリーには、director のインストールに必要なパッケージが含まれます。
「リポジトリーの要件」でリストしたリポジトリーのみを有効にします。追加のリポジトリーを使用すると、パッケージとソフトウェアの競合が発生する場合があります。他のリポジトリーは有効にしないでください。
RHEL のバージョンを RHEL 7.7 に設定します。
$ sudo subscription-manager release --set=7.7
システムで更新を実行して、ベースシステムパッケージを最新の状態にします。
$ 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
undercloud.conf
ファイルには、アンダークラウドを設定するための設定値が含まれています。パラメーターを省略したり、コメントアウトした場合には、アンダークラウドのインストールでデフォルト値が使用されます。
テンプレートには [DEFAULT]
および [auth]
の 2 つのセクションが含まれます。[DEFAULT]
セクションには以下のパラメーターが含まれます。
- undercloud_hostname
- アンダークラウドの完全修飾ホスト名を定義します。設定すると、アンダークラウドのインストールで全システムのホスト名が設定されます。未設定のままにすると、アンダークラウドは現在のホスト名を使用しますが、ユーザーは適切に全システムのホスト名の設定を行う必要があります。
- 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
-
SSL/TLS 経由の director のパブリック API エンドポイントに定義する IP アドレスまたはホスト名。director の設定により、IP アドレスは
/32
ネットマスクを使用するルーティングされた IP アドレスとして director のソフトウェアブリッジに接続されます。 - undercloud_admin_vip
-
SSL/TLS 経由の director の管理 API エンドポイントに定義する IP アドレスまたはホスト名。director の設定により、IP アドレスは
/32
ネットマスクを使用するルーティングされた IP アドレスとして director のソフトウェアブリッジに接続されます。 - undercloud_service_certificate
- OpenStack SSL 通信の証明書の場所とファイル名。理想的には、信頼できる認証局から、この証明書を取得します。それ以外の場合は、「付録A SSL/TLS 証明書の設定」のガイドラインを使用して独自の自己署名の証明書を作成します。これらのガイドラインには、自己署名の証明書か認証局からの証明書に拘らず、証明書の SELinux コンテキストを設定する方法が含まれています。
- generate_service_certificate
-
アンダークラウドのインストール時に SSL 証明書を生成するかどうかを定義します。これは
undercloud_service_certificate
パラメーターに使用します。アンダークラウドのインストールで、作成された証明書/etc/pki/tls/certs/undercloud-[undercloud_public_vip].pem
を保存します。certificate_generation_ca
パラメーターで定義される CA はこの証明書に署名します。 - certificate_generation_ca
-
要求した証明書に署名する CA の
certmonger
のニックネーム。generate_service_certificate
パラメーターを設定した場合のみこのオプションを使用します。local
CA を選択する場合は、certmonger はローカルの CA 証明書を/etc/pki/ca-trust/source/anchors/cm-local-ca.pem
に抽出して、トラストチェーンに追加します。 - service_principal
- この証明書を使用するサービスの Kerberos プリンシパル。CA で FreeIPA などの Kerberos プリンシパルが必要な場合にのみ使用します。
- 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
パラメーターで定義したカスタムのブリッジにアタッチされます。- local_mtu
-
local_interface
に使用する MTU。 - network_cidr
-
オーバークラウドインスタンスの管理に director が使用するネットワーク。これは、アンダークラウドの
neutron
サービスが管理するプロビジョニングネットワークです。プロビジョニングネットワークに別のサブネットを使用しない限り、この値はデフォルト (192.0.2.0/24
) のままにします。 - masquerade_network
-
外部アクセスのためにマスカレードするネットワークを定義します。このパラメーターにより、director 経由で外部ネットワークにアクセスすることができるように、プロビジョニングネットワークにネットワークアドレス変換 (NAT) の一部メカニズムが提供されます。プロビジョニングネットワークに別のサブネットを使用しない限り、この値はデフォルト (
192.0.2.0/24
) のままにします。 - dhcp_start、dhcp_end
- オーバークラウドノードの DHCP 割り当て範囲 (開始アドレスと終了アドレス)。ノードを割り当てるのに十分な IP アドレスがこの範囲に含まれるようにします。
- hieradata_override
-
hieradata
オーバーライドファイルへのパス。設定すると、アンダークラウドのインストールでこのファイルが/etc/puppet/hieradata
にコピーされ、階層の最初のファイルに設定されます。これを使用して、undercloud.conf
パラメーター以外のカスタム設定をサービスに指定します。 - net_config_override
-
ネットワーク設定のオーバーライドテンプレートへのパス。これを設定すると、アンダークラウドは JSON 形式のテンプレートを使用して
os-net-config
でネットワークを設定します。これは、undercloud.conf
に設定されているネットワークパラメーターを無視します。/usr/share/instack-undercloud/templates/net-config.json.template
の例を参照してください。 - 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
に設定します。このオプションは、登録ノードのハードウェアを検査する際にベンチマーク分析を実行する場合に必要です。詳しくは、「ノードのハードウェアの検査」を参照してください。 - inspection_enable_uefi
- UEFI のみのファームウェアを使用するノードのイントロスペクションをサポートするかどうかを定義します。詳しい情報は、「付録D 代替ブートモード」を参照してください。
- undercloud_debug
-
アンダークラウドサービスのログレベルを
DEBUG
に設定します。この値をtrue
に設定して有効にします。 - enable_tempest
-
検証ツールをインストールするかどうかを定義します。デフォルトは、
false
に設定されていますが、true
で有効化することができます。 - enable_mistral
- アンダークラウドに OpenStack Workflow サービス (mistral) をインストールするかどうかを定義します。
- enable_zaqar
- アンダークラウドに OpenStack Messaging サービス (zaqar) をインストールするかどうかを定義します。
- ipxe_enabled
-
iPXE か標準の PXE のいずれを使用するか定義します。デフォルトは
true
で iPXE を有効化します。false
に指定すると、標準の PXE に設定されます。詳しい情報は、「付録D 代替ブートモード」を参照してください。 - enable_telemetry
-
アンダークラウドに OpenStack Telemetry (ceilometer、aodh) サービスをインストールするかどうかを定義します。デフォルト値は
false
で、アンダークラウド上の telemetry が無効になります。このパラメーターは、Red Hat CloudForms などのメトリックデータを消費する他の製品を使用している場合に必要です。 - enable_ui
-
director の Web UI をインストールするかどうかを定義します。これにより、グラフィカル Web インターフェースを使用して、オーバークラウドのプランニングやデプロイメントが可能になります。詳しい情報は、「6章Web UI を使用した基本的なオーバークラウド要件の設定」を参照してください。UI は、
undercloud_service_certificate
またはgenerate_service_certificate
のいずれかを使用して SSL/TLS を有効化している場合にのみ使用できる点にご注意ください。 - enable_validations
- 検証の実行に必要なアイテムをインストールするかどうかを定義します。
- store_events
- アンダークラウドに OpenStack Telemetry (ceilomete) のイベントを保管するかどうかを定義します。
- scheduler_max_attempts
- スケジューラーがインスタンスのデプロイを試行する最大回数。これは、スケジューリング時に競合状態にならないように、1 度にデプロイする予定のベアメタルノードの数以上に指定するようにしてください。
[auth]
セクションには以下のパラメーターが含まれます。
- 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 のコマンドラインツールへアクセスできるようにする初期化変数セット
この設定により、OpenStack Platform のすべてのサービスも自動的に起動します。以下のコマンドを使用して、有効化されたサービスを確認してください。
$ sudo systemctl list-units openstack-*
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-10.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-10.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
デフォルトの overcloud-full.qcow2
イメージは、フラットなパーティションイメージです。ただし、完全なディスクイメージをインポートして使用することも可能です。詳しくは、「付録C 完全なディスクイメージ」を参照してください。
4.8. アンダークラウドの Neutron サブネットでのネームサーバーの設定
オーバークラウドで cdn.redhat.com
などの外部のホスト名を解決する予定の場合は、オーバークラウドノード上にネームサーバーを設定することを推奨します。ネットワークを分離していない標準のオーバークラウドの場合には、ネームサーバーはアンダークラウドの neutron
サブネットを使用して定義されます。環境でネームサーバーを定義するには、以下のコマンドを使用します。
$ openstack subnet list $ openstack subnet set --dns-nameserver [nameserver1-ip] --dns-nameserver [nameserver2-ip] [subnet-uuid]
サブネットを表示してネームサーバーを確認します。
$ openstack 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. アンダークラウド設定の完了
これで アンダークラウドの設定が完了しました。次の章では、ノードの登録、検査、さまざまなノードロールのタグ付けなど、オーバークラウドの基本的な設定について説明します。