クイックスタートガイド
テストおよび概念実証環境用のオールインワン OpenStack クラウドの作成
概要
前書き
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
第1章 オールインワン Red Hat OpenStack Platform のインストール
オールインワンのインストール手法では、TripleO を使用して、シンプルな単一ノード環境で Red Hat OpenStack Platform および関連サービスをデプロイします。このインストールを使用して、単一ノードの概念実証、開発、およびテスト用デプロイメントを有効にします。この場合、フォローアップ操作は限定的であるか、あるいはまったく行われません。
1.1. 前提条件
システムには、2 つのネットワークインターフェースとベースオペレーティングシステムがインストールされている必要があります。
ネットワーク構成の例
-
デフォルト
ネットワーク 192.168.122.0/24 に割り当てられたインターフェースeth0
-
管理
ネットワーク 192.168.25.0/24 に割り当てられたインターフェースeth1
第2章 オールインワン Red Hat OpenStack Platform 環境の概要
本セクションでは、シンプルな単一ノードの Red Hat OpenStack Platform 環境をインストール、設定、およびデプロイする方法について説明します。このシナリオでは、既存のアンダークラウドとの依存関係はありません。その代わりに、インストーラーはインラインの heat-all インスタンスを実行してデプロイプロセスのブートストラップを行い、選択した heat テンプレートをローカルマシンで実行可能な Ansible Playbook に変換します。
基本的なテストおよび開発用に、オールインワンのインストールを使用します。オールインワンのインストールは、Red Hat OpenStack Platform を初めて使用する場合やテスト環境を構築する場合には適していますが、複雑な操作を実行する場合は、プロダクションレベルのスケーリングに対応したクラウドをデプロイする必要があります。
ワークフロー
シンプルな単一ノードの Red Hat OpenStack Platform 環境をインストール、設定、およびデプロイするには、以下に示す基本ワークフローのタスクを完了します。
- 環境を準備する。
- オールインワン環境用のパッケージをインストールする。
- オールインワン環境を設定する。
- オールインワン環境をデプロイする。
オールインワンインストールのメリット
- コンポーザブルサービス
- 事前定義済みのロール
- 凝縮された単一ノード環境
- コンテナーでフットプリントの小さなインストーラーを実行し、Ansible Playbook を生成するのに使用できる Playbook
設定
試験的にロールおよびサービスを設定する場合は、「8章カスタムロールおよびカスタムサービスの使用」および「コア heat テンプレート」を参照してください。
コンポーザブルロール
カスタムのコンポーザブルロールを作成し、それぞれのロールに特定のサービスをデプロイすることができます。
Ansible
このインストールでは、デプロイメントコマンドにより Ansible Playbooks が自動的に適用されます。デプロイメントコマンドに対して、他のインスタンスで使用可能な Ansible Playbook を出力するように設定することもできます。たとえば、オールインワンのインストールでテストを完了し、検証済みの Ansible Playbook を他のインスタンスに適用することができます。
第3章 オールインワン Red Hat OpenStack Platform 環境のインストール
オールインワン環境の設定、デプロイ、およびテストを開始する前に、root 以外のユーザーを設定し、必要なパッケージおよび依存関係をインストールする必要があります。
オールインワンのホストに root 以外のユーザーを作成します。
[root@all-in-one]# useradd stack
stack
ユーザーのパスワードを設定します。[root@all-in-one]# passwd stack
sudo
をstack
ユーザーとして使用する場合は、パスワードを要求されないようにします。[root@all-in-one]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack [root@all-in-one]# chmod 0440 /etc/sudoers.d/stack
オールインワンのホストに root 以外のユーザーとしてログインします。
$ ssh stack@<all-in-one>
マシンを Red Hat Subscription Manager に登録します。要求されたら、Red Hat サブスクリプションの認証情報を入力します。
[stack@all-in-one]$ sudo subscription-manager register
Red Hat サブスクリプションをエンタイトルメントサーバーにアタッチします。
[stack@all-in-one]$ sudo subscription-manager attach --auto
注記--auto
オプションを使用すると、正しいサブスクリプションプールをサブスクライブしない場合があります。正しいプールをサブスクライブするようにしてください。そうでないと、このインストールに必要なすべてのリポジトリーを有効にすることができない場合があります。subscription-manager list --all --available
コマンドを使用して、正しいプール ID を特定します。以下のコマンドを実行し、
dnf-utils
をインストールし、すべてのデフォルトリポジトリーを無効にしてから、必要なリポジトリーを有効にします。[stack@all-in-one]$ sudo dnf install -y dnf-utils [stack@all-in-one]$ sudo subscription-manager repos --disable=* [stack@all-in-one]$ sudo subscription-manager repos \ --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-highavailability-rpms \ --enable=ansible-2.8-for-rhel-8-x86_64-rpms \ --enable=openstack-15-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms
注記オールインワン環境は、Red Hat OpenStack Platform 15 ではテクノロジープレビューの機能です。
TripleO コマンドラインインターフェース (CLI) をインストールします。
[stack@all-in-one]$ sudo dnf install -y python3-tripleoclient
第4章 オールインワン Red Hat OpenStack Platform 環境の設定
オールインワンの Red Hat OpenStack Platform 環境をデプロイする前に、以下の設定ファイルを手動で作成する必要があります。
-
$HOME/containers-prepare-parameters.yaml
-
$HOME/standalone_parameters.yaml
開発またはテスト用にオールインワン環境をカスタマイズする場合は、以下の設定ファイルを編集します。
-
/usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml
-
/usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
4.1. オールインワン Red Hat OpenStack Platform 環境用の YAML ファイルの生成
containers-prepare-parameter.yaml
および standalone_parameters.yaml
ファイルを生成するには、以下の手順を実行します。
デフォルトの
ContainerImagePrepare
パラメーターが含まれるcontainers-prepare-parameters.yaml
ファイルを生成します。[stack@all-in-one]$ openstack tripleo container image prepare default --output-env-file $HOME/containers-prepare-parameters.yaml
containers-prepare-parameters.yaml
ファイルを編集し、ContainerImageRegistryCredentials
パラメーターにご自分の Red Hat 認証情報を追加します。これにより、デプロイプロセスで registry.redhat.io との認証を行い、コンテナーイメージを正常にプルすることができます。ContainerImageRegistryCredentials: registry.redhat.io: <USERNAME>: "<PASSWORD>"
注記パスワードをプレーンテキストで入力するのを避けるためには、Red Hat サービスアカウントを作成します。詳しくは、「Red Hat コンテナーレジストリーの認証」を参照してください。
containers-prepare-parameters.yaml
でContainerImageRegistryLogin
パラメーターをtrue
に設定します。ContainerImageRegistryLogin: true
$HOME/standalone_parameters.yaml
ファイルを作成し、ネットワーク設定や一部のデプロイメントオプションなど、オールインワンの Red Hat OpenStack Platform 環境の基本パラメーターを設定します。以下の例では、ネットワークインターフェースeth1
は、OpenStack のデプロイに使用する管理ネットワーク上のインターフェースです。eth1
の IP アドレスは 192.168.25.2 です。[stack@all-in-one]$ export IP=192.168.25.2 [stack@all-in-one]$ export NETMASK=24 [stack@all-in-one]$ export INTERFACE=eth1 [stack@all-in-one]$ cat <<EOF > $HOME/standalone_parameters.yaml parameter_defaults: CloudName: $IP ControlPlaneStaticRoutes: [] Debug: true DeploymentUser: $USER DnsServers: - 1.1.1.1 - 8.8.8.8 DockerInsecureRegistryAddress: - $IP:8787 NeutronPublicInterface: $INTERFACE NeutronDnsDomain: localdomain NeutronBridgeMappings: datacentre:br-ctlplane NeutronPhysicalBridge: br-ctlplane StandaloneEnableRoutedNetworks: false StandaloneHomeDir: $HOME StandaloneLocalMtu: 1500 EOF
DnsServers
パラメーターにご自分の DNS アドレスを設定する必要があります。このアドレスは、/etc/resolv.conf
ファイルで確認することができます。[stack@all-in-one]$ cat /etc/resolv.conf 192.168.122.1
内部の時刻ソースがある場合、または環境が外部の時刻ソースへのアクセスをブロックする場合は、
NtpServer
パラメーターを使用して、使用する時刻ソースを定義します。NtpServer: clock.example.com
仮想環境でオールインワンの Red Hat OpenStack Platform インストールを使用する場合は、
StandaloneExtraConfig
パラメーターを使用して仮想化の種別を定義する必要があります。StandaloneExtraConfig: NovaComputeLibvirtType: qemu
第5章 オールインワン Red Hat OpenStack Platform 環境のデプロイメント
オールインワンの Red Hat OpenStack Platform 環境をデプロイする前に、システムを最新の状態にしてください。
[stack@all-in-one]$ sudo dnf update [stack@all-in-one]$ sudo reboot
オールインワン環境をデプロイするには、次の手順を実施します。
Red Hat の認証情報を使用して registry.redhat.io にログインします。
[stack@all-in-one]$ sudo podman login registry.redhat.io
デプロイメントコマンドで使用する環境変数をエクスポートします。以下の例では、IP アドレスに管理ネットワーク上の 192.168.25.2 が設定された
eth1
インターフェースと共に、オールインワン環境をデプロイします。[stack@all-in-one]$ export IP=192.168.25.2 [stack@all-in-one]$ export NETMASK=24 [stack@all-in-one]$ export INTERFACE=eth1
deploy コマンドを実行します。ご自分の環境に該当するすべての
.yaml
ファイルを指定するようにしてください。[stack@all-in-one]$ sudo openstack tripleo deploy \ --templates \ --local-ip=$IP/$NETMASK \ -e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \ -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \ -e $HOME/containers-prepare-parameters.yaml \ -e $HOME/standalone_parameters.yaml \ --output-dir $HOME \ --standalone
デプロイメントが正常に完了したら、/home/$USER/.config/openstack
ディレクトリーの clouds.yaml
設定ファイルを使用して、OpenStack サービスにクエリーを行い検証することができます。
[stack@all-in-one]$ export OS_CLOUD=standalone [stack@all-in-one]$ openstack endpoint list
Dashboard にアクセスするには、~/undercloud-passwords.conf ファイルのデフォルトのユーザー名
admin
と undercloud_admin_password
を使用します。
[stack@all-in-one]$ cat undercloud-passwords.conf | grep undercloud_admin_password:
第6章 オールインワン Red Hat OpenStack Platform 環境を使用した Ansible Playbook の作成
デプロイメントコマンドは、Ansible Playbook を自動的に環境に適用します。ただし、デプロイメントコマンドを変更して、Ansible Playbook をデプロイメントに適用せずに生成し、後で Playbook を実行することができます。
deploy コマンドに --output-only
オプションを追加して、undercloud-ansible-XXXXX
ディレクトリーを生成します。このディレクトリーには、他のホストで実行することのできる Ansible Playbook のセットが含まれます。
Ansible Playbook のディレクトリーを生成するには、オプション
--output-only
を指定してデプロイコマンドを実行します。[stack@all-in-one]$ sudo openstack tripleo deploy \ --templates \ --local-ip=$IP/$NETMASK \ -e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \ -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \ -e $HOME/containers-prepare-parameters.yaml \ -e $HOME/standalone_parameters.yaml \ --output-dir $HOME \ --standalone --output-only
Ansible Playbook を実行するには、
ansible-playbook
コマンドを実行し、inventory.yaml
ファイルおよびdeploy_steps_playbook.yaml
ファイルを指定します。[stack@all-in-one]$ cd undercloud-ansible-XXXXX [stack@all-in-one]$ sudo ansible-playbook -i inventory.yaml deploy_steps_playbook.yaml
第7章 heat テンプレートの使用
本章のカスタム設定では、heat テンプレートおよび環境ファイルを使用して、オーバークラウドの特定の機能を定義します。本章では、Red Hat OpenStack Platform に関して、heat テンプレートの構成の基本概要について説明します。テンプレートの目的は、heat が作成するリソースのコレクションであるスタックを定義および作成し、リソースを設定することです。リソースとは、コンピュートリソース、ネットワーク設定、セキュリティーグループ、スケーリングルール、カスタムリソースなどの OpenStack のオブジェクトを指します。
heat テンプレートは、3 つの主要なセクションで構成されます。
パラメーター
パラメーターは、heat に渡される設定です。これらのパラメーターを使用して、デフォルト値およびデフォルト以外の値の両方を定義およびカスタマイズします。テンプレートの parameters セクションで、これらのパラメーターを定義します。
リソース
リソースは、スタックの一部として作成および設定する固有のオブジェクトです。OpenStack には、全コンポーネントに対応するコアリソースのセットが含まれています。テンプレートの resources セクションで、リソースを定義します。
アウトプット
これらは、スタックの作成後に heat から渡される値です。これらの値には、heat API またはクライアントツールのいずれかを使用してアクセスすることができます。テンプレートの output セクションで、これらの値を定義します。
heat がテンプレートを処理する際には、テンプレートのスタックとリソーステンプレートの子スタックセットを作成します。このスタック階層は、テンプレートで定義するメインのスタックに由来します。以下のコマンドを使用して、スタックの階層を表示することができます。
$ heat stack-list --show-nested
7.1. コア heat テンプレート
Red Hat OpenStack Platform には、オーバークラウド用のコア heat テンプレートコレクションが含まれています。このコレクションは、/usr/share/openstack-tripleo-heat-templates
ディレクトリーにあります。
このコレクションには、多数の heat テンプレートおよび環境ファイルが含まれます。本セクションでは、デプロイメントをカスタマイズするのに使用できる主要なファイルおよびディレクトリーについて説明します。
overcloud.j2.yaml
このファイルは、オーバークラウド環境の作成に使用するメインのテンプレートファイルです。このファイルでは Jinja2 構文を使用してテンプレートの特定セクションを繰り返し、カスタムロールを作成します。Jinja2 フォーマットは、オーバークラウドのデプロイメントプロセス中に YAML にレンダリングされます。
overcloud-resource-registry-puppet.j2.yaml
このファイルは、オーバークラウド環境の作成に使用するメインの環境ファイルです。このファイルには、オーバークラウドイメージ上の Puppet モジュールの設定セットが含まれます。director により各ノードにオーバークラウドのイメージが書き込まれると、heat はこの環境ファイルに登録されているリソースを使用して各ノードの Puppet 設定を開始します。このファイルでは Jinja2 構文を使用してテンプレートの特定セクションを繰り返し、カスタムロールを作成します。Jinja2 フォーマットは、オーバークラウドのデプロイメントプロセス中に YAML にレンダリングされます。
roles_data.yaml
このファイルにはオーバークラウド内のロールの定義が含まれ、サービスを各ロールにマッピングします。
network_data.yaml
このファイルには、オーバークラウド内のネットワーク、およびそれらのサブネット、割り当てプール、VIP ステータス等の属性の定義が含まれます。デフォルトの network_data.yaml
ファイルにはデフォルトのネットワーク (External、Internal Api、Storage、Storage Management、Tenant、Management) のみが含まれます。カスタムの network_data.yaml
ファイルを作成し、-n
オプションを使用して openstack overcloud deploy
コマンドに追加することができます。
plan-environment.yaml
このファイルには、プラン名、使用するメインのテンプレート、オーバークラウドに適用する環境ファイル等、オーバークラウドプランのメタデータの定義が含まれます。
capabilities-map.yaml
このファイルには、オーバークラウドプランの環境ファイルのマッピングが含まれます。director の Web UI で環境ファイルを記述および有効化するには、このファイルを使用します。environments
ディレクトリーにカスタム環境ファイルを含めても、これらのファイルを capabilities-map.yaml
ファイルに定義しない場合、これらの環境ファイルは Web UI の 全体の設定 ページの Other サブタブに表示されます。
environments
このディレクトリーには、オーバークラウドの作成に使用可能なその他の heat 環境ファイルが含まれます。これらの環境ファイルは、Red Hat OpenStack Platform 環境の追加の機能を有効にします。たとえば、cinder-netapp-config.yaml
環境ファイルを使用して、Block Storage サービス (cinder) のNetApp バックエンドストレージを有効にすることができます。environments
ディレクトリーにカスタム環境ファイルを含めても、これらのファイルを capabilities-map.yaml
ファイルに定義しない場合、これらの環境ファイルは Web UI の 全体の設定 ページの Other サブタブに表示されます。
network
このディレクトリーには、分離ネットワークおよびポートを作成するのに使用できる heat テンプレートのセットが含まれます。
puppet
このディレクトリーには、puppet テンプレートが含まれます。overcloud-resource-registry-puppet.j2.yaml
環境ファイルは、puppet
ディレクトリーのファイルを使用して、各ノードに Puppet の設定が適用されるようにします。
puppet/services
このディレクトリーには、コンポーザブルサービスアーキテクチャー内の全サービス用の heat テンプレートが含まれます。
extraconfig
このディレクトリーには、追加機能を有効にするのに使用できるテンプレートが含まれます。たとえば、extraconfig/pre_deploy/rhel-registration
ディレクトリーを使用して、ノードを Red Hat コンテンツ配信ネットワークまたはご自分の Red Hat Satellite サーバーに登録することができます。
第8章 カスタムロールおよびカスタムサービスの使用
通常 Red Hat OpenStack Platform は、事前定義済みロールのノード (例: Controller ロール、Compute ロール、さまざまなストレージロール種別のノード) で構成されます。これらのデフォルトロールには、それぞれコアの heat テンプレートコレクションで定義するサービスのセットが含まれます。ただし、オールインワンの Red Hat OpenStack Platform インストールは、すべての OpenStack サービスが含まれる単一のノード上で実行されます。/usr/share/openstack-tripleo-heat-templates/roles
ディレクトリーの Standalone.yaml
ロールファイルは、オールインワンインストールのすべてのサービスが含まれる設定ファイルです。Standalone.yaml
ロールファイルのコピーを作成して変更し、インストール内のサービスを有効および無効にすることができます。
Standalone.yaml
ファイルには、ロール Standalone
にサービスの一覧が含まれます。以下の例を使用して、このファイルの構文を説明します。
- name: Standalone description: | A standalone role that includes a minimal set of services. Use this role for testing in a single node configuration with the 'openstack tripleo deploy --standalone' command, or with the 'openstack overcloud deploy' command. CountDefault: 1 tags: - primary - controller disable_constraints: True ServicesDefault: - OS::TripleO::Services::Aide - OS::TripleO::Services::AodhApi - OS::TripleO::Services::AodhEvaluator ... - OS::TripleO::Services::Tuned - OS::TripleO::Services::Vpp - OS::TripleO::Services::Zaqar
このロールファイルをデプロイコマンドに追加して、Standalone ロールでスタックを設定します。このロールには、ロールファイルの ServicesDefault:
セクションに含めたサービスが含まれます。
[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
ただし、プロダクションのマルチノード Red Hat OpenStack Platform 環境では、すべてのサービスを単一のノードに含めるのではなく、OpenStack サービスの一部が含まれるロールを各ノードに割り当てます。たとえば、デフォルトの Controller ロールには管理、ネットワーク、および高可用性サービスが含まれ、デフォルトの Compute ロールにはコンピューティングサービスが含まれます。マルチノード環境のデフォルトのロールファイルは、/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
ファイルです。このファイルで、以下のロール種別を定義します。
- Controller
- Compute
- BlockStorage
- ObjectStorage
- CephStorage
以下の例を使用して、マルチノード環境におけるロールの構文を説明します。
- name: Controller description: | Controller role that contains all of the services for database, messaging and network functions. ServicesDefault: - OS::TripleO::Services::AuditD - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient ... - name: Compute description: | Basic Compute Node role ServicesDefault: - OS::TripleO::Services::AuditD - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient ...
デプロイメントコマンドを実行するたびに、ロールファイルを指定する必要があります。デプロイメントコマンドで -r
引数を使用して、このファイルをオーバーライドしてカスタムロールファイルを使用することができます。
[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r ~/templates/roles_data-custom.yaml
8.1. オールインワン Red Hat OpenStack Platform 環境でのサービスの有効化および無効化
/usr/share/openstack-tripleo-heat-templates/roles
ディレクトリーの Standalone.yaml
ロールファイルは、オールインワンインストールのすべてのサービスが含まれる設定ファイルです。お使いの環境でサービスを有効または無効にするには、以下の手順を実施します。
手順
サービスを無効にするには、
/usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
ファイルを編集し、無効にするサービスにOS::Heat::None
の値を追加します。- OS::TripleO::Services::Aide: OS::Heat::None
サービスを有効にするには、
/usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
ファイルを編集し、有効にするサービスからOS::Heat::None
の値を削除します。- OS::TripleO::Services::Aide
第9章 例
以下の例を使用して、デプロイメント後に、さまざまなネットワーク設定でコンピュートインスタンスを起動する方法を説明します。
9.1. 例 1: テナントネットワークおよびプロバイダーネットワークに 1 つの NIC を持つコンピュートノードの起動
この例を使用して、オールインワンの Red Hat OpenStack Platform 環境をデプロイした後に、プライベートテナントネットワークおよびプロバイダーネットワークを設定してコンピュートノードを起動する方法を説明します。この例は単一 NIC 構成がベースで、少なくとも 3 つの IP アドレスが必要です。
前提条件
この例を正常に完了するには、ご自分の環境で以下の IP アドレスが利用可能でなければなりません。
- OpenStack サービス用に 1 つの IP アドレス
- テナントネットワークへの接続を提供するために仮想ルーター用に 1 つの IP アドレスこの例では、この IP アドレスは自動的に割り当てられます。
- プロバイダーネットワーク上の Floating IP 用に、少なくとも 1 つの IP アドレス
手順
設定ヘルパー変数を作成します。
# standalone with tenant networking and provider networking export OS_CLOUD=standalone export GATEWAY=192.168.24.1 export STANDALONE_HOST=192.168.24.2 export PUBLIC_NETWORK_CIDR=192.168.24.0/24 export PRIVATE_NETWORK_CIDR=192.168.100.0/24 export PUBLIC_NET_START=192.168.24.4 export PUBLIC_NET_END=192.168.24.5 export DNS_SERVER=1.1.1.1
基本のフレーバーを作成します。
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
CirrOS をダウンロードし、OpenStack イメージを作成します。
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
SSH を設定します。
$ ssh-keygen $ openstack keypair create --public-key ~/.ssh/id_rsa.pub default
シンプルなネットワークセキュリティーグループを作成します。
$ openstack security group create basic
新しいネットワークセキュリティーグループを設定します。
SSH を有効にします。
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
ping を有効にします。
$ openstack security group rule create --protocol icmp basic
DNS を有効にします。
$ openstack security group rule create --protocol udp --dst-port 53:53 basic
Neutron ネットワークを作成します。
$ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public $ openstack network create --internal private $ openstack subnet create public-net \ --subnet-range $PUBLIC_NETWORK_CIDR \ --no-dhcp \ --gateway $GATEWAY \ --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \ --network public $ openstack subnet create private-net \ --subnet-range $PRIVATE_NETWORK_CIDR \ --network private
仮想ルーターを作成します。
# NOTE: In this case an IP will be automatically assigned # from the allocation pool for the subnet. $ openstack router create vrouter $ openstack router set vrouter --external-gateway public $ openstack router add subnet vrouter private-net
Floating IP を作成します。
$ openstack floating ip create public
インスタンスを起動します。
$ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
Floating IP を割り当てます。
$ openstack server add floating ip myserver <FLOATING_IP>
FLOATING_IP
を、前のステップで作成した Floating IP のアドレスに置き換えます。SSH をテストします。
ssh cirros@<FLOATING_IP>
FLOATING_IP
を、前のステップで作成した Floating IP のアドレスに置き換えます。
ネットワークアーキテクチャー
9.2. 例 2: プロバイダーネットワークに 1 つの NIC を持つコンピュートノードの起動
この例を使用して、オールインワンの Red Hat OpenStack Platform 環境をデプロイした後に、プロバイダーネットワークを設定してコンピュートノードを起動する方法を説明します。この例は単一 NIC 構成がベースで、少なくとも 4 つの IP アドレスが必要です。
前提条件
この例を正常に完了するには、ご自分の環境で以下の IP アドレスが利用可能でなければなりません。
- OpenStack サービス用に 1 つの IP アドレス
- テナントネットワークへの接続を提供するために仮想ルーター用に 1 つの IP アドレスこの例では、この IP アドレスは自動的に割り当てられます。
- プロバイダーネットワーク上の DHCP 用に 1 つの IP アドレス
- プロバイダーネットワーク上の Floating IP 用に、少なくとも 1 つの IP アドレス
手順
設定ヘルパー変数を作成します。
# standalone with tenant networking and provider networking export OS_CLOUD=standalone export GATEWAY=192.168.24.1 export STANDALONE_HOST=192.168.24.2 export VROUTER_IP=192.168.24.3 export PUBLIC_NETWORK_CIDR=192.168.24.0/24 export PUBLIC_NET_START=192.168.24.4 export PUBLIC_NET_END=192.168.24.5 export DNS_SERVER=1.1.1.1
基本のフレーバーを作成します。
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
CirrOS をダウンロードし、OpenStack イメージを作成します。
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
SSH を設定します。
$ ssh-keygen $ openstack keypair create --public-key ~/.ssh/id_rsa.pub default
シンプルなネットワークセキュリティーグループを作成します。
$ openstack security group create basic
新しいネットワークセキュリティーグループを設定します。
SSH を有効にします。
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
ping を有効にします。
$ openstack security group rule create --protocol icmp basic
DNS を有効にします。
$ openstack security group rule create --protocol udp --dst-port 53:53 basic
Neutron ネットワークを作成します。
$ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public $ openstack network create --internal private $ openstack subnet create public-net \ --subnet-range $PUBLIC_NETWORK_CIDR \ --gateway $GATEWAY \ --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \ --network public \ --host-route destination=169.254.169.254/32,gateway=$VROUTER_IP \ --host-route destination=0.0.0.0/0,gateway=$GATEWAY \ --dns-nameserver $DNS_SERVER
仮想ルーターを作成します。
# NOTE: In this case an IP will be automatically assigned # from the allocation pool for the subnet. $ openstack router create vrouter $ openstack port create --network public --fixed-ip subnet=public-net,ip-address=$VROUTER_IP vrouter-port $ openstack router add port vrouter vrouter-port
インスタンスを起動します。
$ openstack server create --flavor tiny --image cirros --key-name default --network public --security-group basic myserver
SSH をテストします。
ssh cirros@<VM_IP>
VM_IP
を、前のステップで作成した仮想マシンのアドレスに置き換えます。
ネットワークアーキテクチャー
9.3. 例 3: テナントネットワークおよびプロバイダーネットワーク上に 2 つの NIC を持つコンピュートノードの起動
この例を使用して、オールインワンの Red Hat OpenStack Platform 環境をデプロイした後に、プライベートテナントネットワークおよびプロバイダーネットワークを設定してコンピュートノードを起動する方法を説明します。この例はデュアル NIC 構成がベースで、プロバイダーネットワークに少なくとも 4 つの IP アドレスが必要です。
前提条件
- プロバイダーネットワーク上のゲートウェイ用に 1 つの IP アドレス
- OpenStack のエンドポイント用に 1 つの IP アドレス
- テナントネットワークへの接続を提供するために仮想ルーター用に 1 つの IP アドレスこの例では、この IP アドレスは自動的に割り当てられます。
- プロバイダーネットワーク上の Floating IP 用に、少なくとも 1 つの IP アドレス
手順
設定ヘルパー変数を作成します。
# standalone with tenant networking and provider networking export OS_CLOUD=standalone export GATEWAY=192.168.24.1 export STANDALONE_HOST=192.168.0.2 export PUBLIC_NETWORK_CIDR=192.168.24.0/24 export PRIVATE_NETWORK_CIDR=192.168.100.0/24 export PUBLIC_NET_START=192.168.0.3 export PUBLIC_NET_END=192.168.24.254 export DNS_SERVER=1.1.1.1
基本のフレーバーを作成します。
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
CirrOS をダウンロードし、OpenStack イメージを作成します。
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
SSH を設定します。
$ ssh-keygen $ openstack keypair create --public-key ~/.ssh/id_rsa.pub default
シンプルなネットワークセキュリティーグループを作成します。
$ openstack security group create basic
新しいネットワークセキュリティーグループを設定します。
SSH を有効にします。
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
ping を有効にします。
$ openstack security group rule create --protocol icmp basic
DNS を有効にします。
$ openstack security group rule create --protocol udp --dst-port 53:53 basic
Neutron ネットワークを作成します。
$ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public $ openstack network create --internal private $ openstack subnet create public-net \ --subnet-range $PUBLIC_NETWORK_CIDR \ --no-dhcp \ --gateway $GATEWAY \ --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \ --network public $ openstack subnet create private-net \ --subnet-range $PRIVATE_NETWORK_CIDR \ --network private
仮想ルーターを作成します。
# NOTE: In this case an IP will be automatically assigned # from the allocation pool for the subnet. $ openstack router create vrouter $ openstack router set vrouter --external-gateway public $ openstack router add subnet vrouter private-net
Floating IP を作成します。
$ openstack floating ip create public
インスタンスを起動します。
$ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
Floating IP を割り当てます。
$ openstack server add floating ip myserver <FLOATING_IP>
FLOATING_IP
を、前のステップで作成した Floating IP のアドレスに置き換えます。SSH をテストします。
ssh cirros@<FLOATING_IP>
FLOATING_IP
を、前のステップで作成した Floating IP のアドレスに置き換えます。
ネットワークアーキテクチャー