Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
付録C 完全なディスクイメージ
メインのオーバークラウドイメージは、フラットパーティションイメージです。これは、パーティション情報またはブートローダーがイメージ自体に含まれていないことを意味します。director は、起動時に別のカーネルと ramdisk を使用し、オーバークラウドイメージをディスクに書き込む際には基本的なパーティションレイアウトを作成しますが、パーティションレイアウト、ブートローダー、および強化されたセキュリティー機能が含まれる完全なディスクイメージを作成することが可能です。
以下のプロセスでは、director のイメージ構築機能を使用します。Red Hat では、本項に記載の指針に従ったイメージ構築のみをサポートしています。これらとは異なる仕様でのカスタムのイメージ構築はサポートされていません。
セキュリティーが強化されたイメージには、セキュリティーが重要な機能となるRed Hat OpenStack Platform のデプロイメントに必要な追加のセキュリティー対策が含まれます。イメージをセキュアにするためには、以下のような推奨事項があります。
-
/tmp
ディレクトリーは、別のボリュームまたはパーティションにマウントされ、rw
、nosuid
、nodev
、noexec
、relatime
のフラグが付きます。 -
/var
、/var/log
、/var/log/audit
のディレクトリーは、別のボリュームまたはパーティションにマウントされ、rw
およびrelatime
のフラグが付きます。 -
/home
ディレクトリーは、別のパーティションまたはボリュームにマウントされ、rw
、nodev
、relatime
のフラグが付きます。 GRUB_CMDLINE_LINUX
の設定に以下の変更を加えます。-
監査を有効にするには、
audit=1
を追加して、追加のカーネルブートフラグを付けます。 -
nousb
を追加して、ブートローダー設定を使用した USB のカーネルサポートを無効にします。 -
crashkernel=auto
を設定して、セキュアでないブートフラッグを削除します。
-
監査を有効にするには、
-
セキュアでないモジュール (
usb-storage
、cramfs
、freevxfs
、jffs2
、hfs
、hfsplus
、squashfs
、udf
、vfat
) をブラックリストに登録して、読み込まれないようにします。 -
イメージから、セキュアでないパッケージ (
kexec-tools
によりインストールされたkdump
とtelnet
) を削除します。 -
セキュリティーに必要な新しい
screen
パッケージを追加します。
セキュリティー強化されたイメージを構築するには、以下の手順を実行する必要があります。
- ベースの Red Hat Enterprise Linux 7 イメージをダウンロードします。
- 登録固有の環境変数を設定します。
- パーティションスキーマとサイズを変更してイメージをカスタマイズします。
- イメージを作成します。
- そのイメージをデプロイメントにアップロードします。
以下の項では、これらのタスクを実行する手順について詳しく説明します。
C.1. ベースのクラウドイメージのダウンロード
完全なディスクイメージを構築する前に、 ベースとして使用する Red Hat Enterprise Linux の既存のクラウドイメージをダウンロードする必要があります。Red Hat カスタマーポータルにナビゲートして、ダウンロードする KVM ゲストイメージを選択します。たとえば、Red Hat Enterprise Linux 7.4 用の KVM ゲストイメージは以下のページにあります。
C.2. 環境変数の設定
完全なディスクイメージの構築プロセスとして、director にはベースイメージと、新規クラウドイメージのパッケージを取得するための登録情報が必要です。これらは、Linux の環境変数を使用して定義します。
イメージの構築プロセスにより、イメージは一時的に Red Hat サブスクリプションに登録され、システムがイメージの構築プロセスを完了すると登録を解除します。
セキュリティー強化された完全なイメージを構築するには、Linux の環境変数をお使いの環境と要件に応じて設定します。
- DIB_LOCAL_IMAGE
- ベースに使用するローカルイメージを設定します。
- REG_ACTIVATION_KEY
- 登録プロセスの一部で代わりにアクティベーションキーを使用します。
- REG_AUTO_ATTACH
- 最も互換性のあるサブスクリプションを自動的にアタッチするかどうかを定義します。
- REG_BASE_URL
-
パッケージをプルするためのコンテンツ配信サーバーのベース URL。カスタマーポータルサブスクリプション管理のデフォルトのプロセスでは
https://cdn.redhat.com
を使用します。Red Hat Satellite 6 サーバーを使用している場合は、このパラメーターにお使いの Satellite サーバーのベース URL を使用する必要があります。 - REG_ENVIRONMENT
- 1 つの組織内の 1 つの環境に登録します。
- REG_METHOD
-
登録の方法を設定します。Red Hat カスタマーポータルに登録するには
portal
を使用します。Red Hat Satellite 6 で登録するには、satellite
を使用します。 - REG_ORG
- イメージを登録する組織。
- REG_POOL_ID
- 製品のサブスクリプション情報のプール ID
- REG_PASSWORD
- イメージを登録するユーザーアカウントのパスワードを指定します。
- REG_REPOS
コンマ区切りのリポジトリー名の文字列 (空白なし)。この文字列の各リポジトリーは
subscription-manager
で有効化されます。セキュリティー強化された完全なディスクイメージには以下のリポジトリーを使用します。-
rhel-7-server-rpms
-
rhel-7-server-extras-rpms
-
rhel-ha-for-rhel-7-server-rpms
-
rhel-7-server-optional-rpms
-
rhel-7-server-openstack-12-rpms
-
- REG_SERVER_URL
-
使用するサブスクリプションサービスのホスト名を指定します。Red Hat カスタマーポータルの場合のデフォルトは
subscription.rhn.redhat.com
です。Red Hat Satellite 6 サーバーを使用する場合は、このパラメーターにお使いの Satellite サーバーのホスト名を使用する必要があります。 - REG_USER
- イメージを登録するアカウントのユーザー名を指定します。
Red Hat カスタマーポータルにローカルの QCOW2 をイメージ一時的に登録するための環境変数のセットをエクスポートする一連のコマンドの例を以下に示します。
$ export DIB_LOCAL_IMAGE=./rhel-server-7.4-x86_64-kvm.qcow2 $ export REG_METHOD=portal $ export REG_USER="[your username]" $ export REG_PASSWORD="[your password]" $ export REG_REPOS="rhel-7-server-rpms \ rhel-7-server-extras-rpms \ rhel-ha-for-rhel-7-server-rpms \ rhel-7-server-optional-rpms \ rhel-7-server-openstack-12-rpms"
C.3. ディスクレイアウトのカスタマイズ
デフォルトでは、セキュリティーが強化されたイメージのサイズは 20G で、事前定義されたパーティショニングサイズを使用します。ただし、オーバークラウドのコンテナーイメージを収容するには、パーティショニングレイアウトを若干変更する必要があります。
パーティション | 以前のサイズ | 新しいサイズ |
---|---|---|
|
6G |
8G |
|
1G |
1G |
|
7G |
10G |
|
5G |
5G |
|
900M |
900M |
|
100M |
100M |
Total |
20G |
25G |
これにより、イメージサイズが 25G に拡張されます。また、必要に応じて、パーティショニングレイアウトとディスクサイズをさらに変更することも可能です。
パーティショニングレイアウトとディスクサイズを変更するには、以下の手順に従ってください。
-
DIB_BLOCK_DEVICE_CONFIG
環境変数を使用してパーティショニングスキーマを変更します。 -
DIB_IMAGE_SIZE
環境変数を更新して、イメージのグローバルサイズを変更します。
C.3.1. パーティショニングスキーマの変更
パーティショニングスキーマを編集して、パーティショニングサイズを変更したり、新規パーティションの作成や既存のパーティションの削除を行うことができます。新規パーティショニングスキーマは以下の環境変数で定義することができます。
$ export DIB_BLOCK_DEVICE_CONFIG='<yaml_schema_with_partitions>'
以下の YAML 構成は、オーバークラウドのコンテナーイメージをプルするのに十分なスペースを提供する、変更後のパーティショニングレイアウトを示しています。
export DIB_BLOCK_DEVICE_CONFIG=''' - local_loop: name: image0 - partitioning: base: image0 label: mbr partitions: - name: root flags: [ boot,primary ] size: 8G mkfs: type: xfs label: "img-rootfs" mount: mount_point: / fstab: options: "rw,relatime" fck-passno: 1 - name: tmp size: 1G mkfs: type: xfs mount: mount_point: /tmp fstab: options: "rw,nosuid,nodev,noexec,relatime" - name: var size: 10G mkfs: type: xfs mount: mount_point: /var fstab: options: "rw,relatime" - name: log size: 5G mkfs: type: xfs mount: mount_point: /var/log fstab: options: "rw,relatime" - name: audit size: 900M mkfs: type: xfs mount: mount_point: /var/log/audit fstab: options: "rw,relatime" - name: home size: 100M mkfs: type: xfs mount: mount_point: /home fstab: options: "rw,nodev,relatime" '''
サンプルの YAML コンテンツをイメージのパーティションスキーマのベースとして使用します。パーティションサイズとレイアウトを必要に応じて変更します。
パーティションサイズはデプロイメント後には変更できないので、正しいパーティションサイズを定義してください。
C.3.2. イメージサイズの変更
変更後のパーティショニングスキーマの合計は、デフォルトのディスクサイズ (20G) を超える可能性があります。そのような場合には、イメージサイズを変更する必要がある場合があります。イメージサイズを変更するには、イメージの作成に使用した設定ファイルを編集します。
/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml
のコピーを作成します。
# cp /usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml \ /home/stack/overcloud-hardened-images-custom.yaml
設定ファイルで DIB_IMAGE_SIZE
を編集して、必要に応じて値を調整します。
...
environment:
DIB_PYTHON_VERSION: '2'
DIB_MODPROBE_BLACKLIST: 'usb-storage cramfs freevxfs jffs2 hfs hfsplus squashfs udf vfat bluetooth'
DIB_BOOTLOADER_DEFAULT_CMDLINE: 'nofb nomodeset vga=normal console=tty0 console=ttyS0,115200 audit=1 nousb'
DIB_IMAGE_SIZE: '25' 1
COMPRESS_IMAGE: '1'
- 1
- この値は、新しいディスクサイズの合計に応じて調整してください。
このファイルを保存します。
director がオーバークラウドをデプロイする際には、オーバークラウドイメージの RAW バージョンを作成します。これは、アンダークラウドに、その RAW イメージを収容するのに必要な空き容量がなければならないことを意味します。たとえば、セキュリティー強化されたイメージのサイズを 40G に増やした場合には、アンダークラウドのハードディスクに 40G の空き容量が必要となります。
C.4. セキュリティー強化された完全なディスクイメージの作成
環境変数を設定してイメージをカスタマイズした後には、openstack overcloud image build
コマンドを使用してイメージを作成します。
# openstack overcloud image build \
--image-name overcloud-hardened-full \
--config-file /home/stack/overcloud-hardened-images-custom.yaml \ 1
--config-file /usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images-rhel7.yaml
- 1
- これは、「イメージサイズの変更」の新規ディスクサイズが含まれたカスタムの設定ファイルです。異なるカスタムディスクサイズを 使用していない 場合には、代わりに元の
/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml
ファイルを使用してください。
これにより、overcloud-hardened-full.qcow2
という名前のイメージが作成され、必要なセキュリティー機能がすべて含まれます。
C.5. セキュリティー強化された完全なディスクイメージのアップロード
OpenStack Image (glance) サービスにイメージをアップロードして、Red Hat OpenStack Platform director から使用を開始します。セキュリティー強化されたイメージをアップロードするには、以下の手順を実行してください。
新規作成されたイメージの名前を変更し、イメージディレクトリーに移動します。
# mv overcloud-hardened-full.qcow2 ~/images/overcloud-full.qcow2
オーバークラウドの古いイメージをすべて削除します。
# openstack image delete overcloud-full # openstack image delete overcloud-full-initrd # openstack image delete overcloud-full-vmlinuz
新規オーバークラウドイメージをアップロードします。
# openstack overcloud image upload --image-path /home/stack/images --whole-disk
既存のイメージをセキュリティー強化されたイメージに置き換える場合は、--update-existing
フラグを使用します。これにより、元の overcloud-full
イメージは、自分で作成した、セキュリティー強化された新しいイメージに置き換えられます。