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 テンプレートを使用して、オーバークラウド環境を構築します。これらのファイルを整理するには、イメージとテンプレート用にディレクトリーを作成するように推奨します。
[stack@director ~]$ mkdir ~/images [stack@director ~]$ mkdir ~/templates
本書の他の項では、2 つのディレクトリーを使用して特定のファイルを保存します。
4.3. システムのホスト名設定
director では、インストールと設定プロセスにおいて完全修飾ドメイン名が必要です。つまり、director のホストのホスト名を設定する必要がある場合があります。以下のコマンドで、ホストのホスト名をチェックします。
[stack@director ~]$ hostname # Checks the base hostname [stack@director ~]$ hostname -f # Checks the long hostname (FQDN)
いずれのコマンドでも正しいホスト名が返されない場合やエラーが報告される場合には、hostnamectl
でホスト名を設定します。
[stack@director ~]$ sudo hostnamectl set-hostname manager.example.com [stack@director ~]$ 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 サブスクリプションマネージャーを使用してホストシステムを登録し、必要なチャンネルをサブスクライブします。
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
[stack@director ~]$ sudo subscription-manager register
Red Hat OpenStack Platform director のエンタイトルメントプール ID を検索します。以下に例を示します。
[stack@director ~]$ sudo subscription-manager list --available --all --matches="Red Hat 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 12 のエンタイトルメントをアタッチします。[stack@director ~]$ sudo subscription-manager attach --pool=Valid-Pool-Number-123456
デフォルトのリポジトリーをすべて無効にしてから、必要な Red Hat Enterprise Linux リポジトリーを有効にします。
[stack@director ~]$ sudo subscription-manager repos --disable=* [stack@director ~]$ 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-12-rpms
これらのリポジトリーには、director のインストールに必要なパッケージが含まれます。
「リポジトリーの要件」でリストしたリポジトリーのみを有効にします。追加のリポジトリーを使用すると、パッケージとソフトウェアの競合が発生する場合があります。他のリポジトリーは有効にしないでください。
システムで更新を実行して、ベースシステムパッケージを最新の状態にします。
[stack@director ~]$ sudo yum update -y [stack@director ~]$ sudo reboot
システムは、director をインストールできる状態になりました。
4.5. director パッケージのインストール
以下のコマンドを使用して、director のインストールおよび設定に必要なコマンドラインツールをインストールします。
[stack@director ~]$ sudo yum install -y python-tripleoclient
これにより、director のインストールに必要なパッケージがすべてインストールされます。
Ceph Storage ノードを使ってオーバークラウドを作成する場合は、さらに ceph-ansible
パッケージをインストールします。
[stack@director ~]$ sudo yum install -y ceph-ansible
4.6. director の設定
director のインストールプロセスには、ネットワーク設定を判断する特定の設定が必要です。この設定は、stack
ユーザーのホームディレクトリーに undercloud.conf
として配置されているテンプレートに保存されています。
Red Hat は、インストールに必要な設定を判断しやすいように、基本テンプレートを提供しています。このテンプレートは、stack
ユーザーのホームディレクトリーにコピーします。
[stack@director ~]$ 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.168.24.1/24
のままにします。 - network_gateway
オーバークラウドインスタンスのゲートウェイ。外部ネットワークにトラフィックを転送するアンダークラウドのホストです。director に別の IP アドレスを使用する場合または外部ゲートウェイを直接使用する場合以外は、この値はデフォルト (
192.168.24.1
) のままにします。注記director の設定スクリプトは、適切な
sysctl
カーネルパラメーターを使用して IP フォワーディングを自動的に有効にする操作も行います。- undercloud_public_host
-
SSL/TLS を使用する際に、director のパブリック API 用に定義する IP アドレス。これは、SSL/TLS で外部の director エンドポイントにアクセスするための IP アドレスです。director の設定により、この IP アドレスは
/32
ネットマスクを使用するルーティングされた IP アドレスとしてソフトウェアブリッジに接続されます。 - undercloud_admin_host
-
SSL/TLS を使用する際に、director の管理 API 用に定義する IP アドレス。これは、SSL/TLS で管理エンドポイントにアクセスするための IP アドレスです。director の設定により、この IP アドレスは
/32
ネットマスクを使用するルーティングされた IP アドレスとしてソフトウェアブリッジに接続されます。 - undercloud_nameservers
- アンダークラウドのホスト名解決に使用する DNS ネームサーバーの一覧
- undercloud_ntp_servers
- アンダークラウドの日付と時間を同期できるようにする Network Time Protocol サーバーの一覧
- undercloud_service_certificate
- OpenStack SSL/TLS 通信の証明書の場所とファイル名。理想的には、信頼できる認証局から、この証明書を取得します。それ以外の場合は、「付録A SSL/TLS 証明書の設定」のガイドラインを使用して独自の自己署名の証明書を作成します。これらのガイドラインには、自己署名の証明書か認証局からの証明書に拘らず、証明書の SELinux コンテキストを設定する方法が含まれています。
- generate_service_certificate
-
アンダークラウドのインストール時に SSL/TLS 証明書を生成するかを定義します。これは
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.168.24.0/24
) のままにします。 - masquerade_network
-
外部アクセス向けにマスカレードするネットワークを定義します。これにより、プロビジョニングネットワークにネットワークアドレス変換 (NAT) の範囲が提供され、director 経由で外部アクセスが可能になります。プロビジョニングネットワークに別のサブネットを使用しない限り、この値はデフォルト (
192.168.24.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.168.24.100,192.168.24.120
などのように、コンマ区切りの値を使用します。この範囲には、使用するノードに十分な数の IP アドレスが含まれるようにし、dhcp_start
とdhcp_end
の範囲とは競合しないように設定してください。 - inspection_extras
-
イントロスペクション時に追加のハードウェアコレクションを有効化するかどうかを定義します。イントロスペクションイメージでは
python-hardware
またはpython-hardware-detect
パッケージが必要です。 - inspection_runbench
-
ノードイントロスペクション時に一連のベンチマークを実行します。有効にするには、
true
に設定します。このオプションは、登録ノードのハードウェアを検査する際にベンチマーク分析を実行する場合に必要です。詳細は、「ノードのハードウェアの検査」を参照してください。 - inspection_enable_uefi
- UEFI のみのファームウェアを使用するノードのイントロスペクションをサポートするかどうかを定義します。詳しくは、「付録D 代替ブートモード」を参照してください。
- enable_node_discovery
-
イントロスペクションの ramdisk を PXE ブートする不明なノードを自動的に登録します。新規ノードは、
fake_pxe
ドライバーをデフォルトとして使用しますが、discovery_default_driver
を設定して上書きすることもできます。また、イントロスペクションルールを使用して、新しく登録したノードにドライバーの情報を指定することもできます。 - discovery_default_driver
-
自動的に登録されるノード用のデフォルトドライバーを設定します。
enable_node_discovery
を有効化して、enabled_drivers
一覧にそのドライバーを追加する必要があります。サポート対象のドライバー一覧は、「付録B 電源管理ドライバー」を参照してください。 - undercloud_debug
-
アンダークラウドサービスのログレベルを
DEBUG
に設定します。この値はtrue
に設定して有効化します。 - undercloud_update_packages
- アンダークラウドのインストール時にパッケージを更新するかどうかを定義します。
- enable_tempest
-
検証ツールをインストールするかどうかを定義します。デフォルトは、
false
に設定されていますが、true
で有効化することができます。 - enable_telemetry
-
アンダークラウドに OpenStack Telemetry サービス (ceilometer、aodh、panko、gnocchi) をインストールするかどうかを定義します。Red Hat OpenStack Platform 12 では、Telemetry のメトリックバックエンドは gnocchi によって提供されます。
enable_telemetry
パラメーターをtrue
に設定すると、Telemetry サービスが自動的にインストール/設定されます。このノードで Telemetry サービスを使用しない場合には、この値はfalse
に指定してください。 - enable_ui
-
director の Web UI をインストールするかどうかを定義します。これにより、グラフィカル Web インターフェースを使用して、オーバークラウドのプランニングやデプロイメントが可能になります。詳しい情報は「7章WEB UI を使用した基本的なオーバークラウドの設定」を参照してください。UI は、
undercloud_service_certificate
またはgenerate_service_certificate
のいずれかを使用して SSL/TLS を有効化している場合にのみ使用できる点にご注意ください。 - enable_validations
- 検証の実行に必要なアイテムをインストールするかどうかを定義します。
- enable_legacy_ceilometer_api
-
アンダークラウドでレガシーの OpenStack Telemetry サービス (Ceilometer) API を有効化するかどうかを定義します。レガシーの API は非推奨で、今後のリリースで削除される点に注意してください。
enable_telemetry
でインストールされる新しいコンポーネントを使用してください。 - enable_novajoin
-
アンダークラウドの
novajoin
メタデータサービスをインストールするかどうかを定義します。 - ipa_otp
-
IPA サーバーにアンダークラウドノードを登録するためのワンタイムパスワードを定義します。これは、
enable_novajoin
が有効な場合に必要です。 - ipxe_enabled
-
iPXE か標準の PXE のいずれを使用するか定義します。デフォルトは
true
で iPXE を有効化します。false
に指定すると、標準の PXE に設定されます。詳しい情報は、「付録D 代替ブートモード」を参照してください。 - scheduler_max_attempts
- スケジューラーがインスタンスのデプロイを試行する最大回数。これは、スケジューリング時に競合状態にならないように、1 度にデプロイする予定のベアメタルノードの数以上に指定するようにしてください。
- clean_nodes
- デプロイメントを再実行する前とイントロスペクションの後にハードドライブを消去するかどうかを定義します。
- enabled_drivers
- アンダークラウド用に有効化するベアメタルのドライバー一覧。サポートされるドライバー一覧については、「付録B 電源管理ドライバー」を参照してください。
[auth]
セクションには、以下のパラメーターが含まれます。
- undercloud_db_password、undercloud_admin_token、undercloud_admin_password、undercloud_glance_passwm など
残りのパラメーターは、全 director サービスのアクセス詳細を指定します。値を変更する必要はありません。
undercloud.conf
で空欄になっている場合には、これらの値は director の設定スクリプトによって自動的に生成されます。設定スクリプトの完了後には、すべての値を取得することができます。重要これらのパラメーターの設定ファイルの例では、プレースホルダーの値に
<None>
を使用しています。これらの値を<None>
に設定すると、デプロイメントでエラーが発生します。
これらのパラメーターの値は、お使いのネットワークに応じて変更してください。完了したら、ファイルを保存して以下のコマンドを実行します。
[stack@director ~]$ openstack undercloud install
このコマンドで、director の設定スクリプトを起動します。director により、追加のパッケージがインストールされ、undercloud.conf
の設定に合わせてサービスを設定します。このスクリプトは、完了までに数分かかります。
設定スクリプトにより、完了時には 2 つのファイルが生成されます。
-
undercloud-passwords.conf
: director サービスの全パスワード一覧 -
stackrc
: director のコマンドラインツールへアクセスできるようにする初期化変数セット
この設定は、全 OpenStack Platform のサービスを自動的に起動します。以下のコマンドを使用して、有効化されたサービスを確認してください。
[stack@director ~]$ sudo systemctl list-units openstack-*
インストールにより、docker
グループに stack
ユーザーも追加され、その stack
ユーザーはコンテナー管理コマンドにアクセスできるようになります。stack
ユーザーのパーミッションを最新の状態に更新するには、以下のコマンドを実行します。
[stack@director ~]$ exec su -l stack
このコマンドでは再度ログインを要求されます。stack ユーザーのパスワードを入力します。
stack
ユーザーを初期化してコマンドラインツールを使用するには、以下のコマンドを実行します。
[stack@director ~]$ source ~/stackrc
プロンプトには、OpenStack コマンドがアンダークラウドに対して認証および実行されることが表示されるようになります。
(undercloud) [stack@director ~]$
director のコマンドラインツールが使用できるようになりました。
4.7. オーバークラウドノードのイメージの取得
director では、オーバークラウドのノードをプロビジョニングする際に、複数のディスクが必要です。必要なディスクは以下のとおりです。
- イントロスペクションのカーネルおよび ramdisk: PXE ブートでベアメタルシステムのイントロスペクションに使用
- デプロイメントカーネルおよび ramdisk: システムのプロビジョニングおよびデプロイメントに使用
- オーバークラウドカーネル、ramdisk、完全なイメージ: ノードのハードディスクに書き込まれるベースのオーバークラウドシステム
rhosp-director-images
および rhosp-director-images-ipa
パッケージからこれらのイメージを取得します。
(undercloud) [stack@director ~]$ sudo yum install rhosp-director-images rhosp-director-images-ipa
stack
ユーザーのホームの images
ディレクトリー (/home/stack/images
) にアーカイブを展開します。
(undercloud) [stack@director ~]$ cd ~/images (undercloud) [stack@director images]$ for i in /usr/share/rhosp-director-images/overcloud-full-latest-12.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-12.0.tar; do tar -xvf $i; done
これらのイメージを director にインポートします。
(undercloud) [stack@director images]$ 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 でイメージの一覧を表示します。
(undercloud) [stack@director images]$ 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
にコピーします。
(undercloud) [stack@director images]$ 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 ironic-inspector ironic-inspector 337 Mar 31 06:23 inspector.ipxe
デフォルトの overcloud-full.qcow2
イメージは、フラットなパーティションイメージですが、ディスクイメージ全体をインポート、使用することも可能です。詳しい情報は、「付録C 完全なディスクイメージ」を参照してください。
4.8. アンダークラウドの Neutron サブネットでのネームサーバーの設定
オーバークラウドで cdn.redhat.com
などの外部のホスト名を解決する予定の場合は、オーバークラウドノード上にネームサーバーを設定することを推奨します。ネットワークを分離していない標準のオーバークラウドの場合には、ネームサーバーはアンダークラウドの neutron
のサブネットを使用して定義されます。環境でネームサーバーを定義するには、以下のコマンドを使用してください。
(undercloud) [stack@director images]$ openstack subnet list (undercloud) [stack@director images]$ openstack subnet set --dns-nameserver [nameserver1-ip] --dns-nameserver [nameserver2-ip] [subnet-uuid]
サブネットを表示してネームサーバーを確認します。
(undercloud) [stack@director images]$ 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. アンダークラウドの設定完了
これでアンダークラウドの設定が完了しました。次の章では、ノードの登録、検査、さまざまなノードロールのタグ付けなど、オーバークラウドの基本的な設定について説明します。