第10章 Amazon EC2 でのクラウドインスタンスのプロビジョニング
Amazon Elastic Compute Cloud (Amazon EC2) は、パブリッククラウドコンピュートリソースを提供する Web サービスです。Red Hat Satellite 6 を使用すると、Amazon EC2 の パブリック API で新規クラウドインスタンスを作成し、それらの電源管理の状態を制御することができます。本章の手順を使用して、接続を ACME の Amazon EC2 アカウントに追加し、クラウドインスタンスをプロビジョニングします。
10.1. Amazon EC2 プロビジョニングの要件 リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 プロビジョニングの要件には以下が含まれます。
- Red Hat Enterprise Linux 7 の同期済みのコンテンツリポジトリー。詳細は、『コンテンツ管理ガイド』の「Red Hat リポジトリーの同期」を参照してください。
- EC2 環境でネットワークを管理する Capsule Server。ホストと Capsule Server 間のネットワークのセキュリティーを確保するために、Virtual Private Cloud (VPC) を使用します。
- イメージベースのプロビジョニング用の Amazon Machine Image (AMI)
- ホスト登録用のアクティベーションキー。詳細は、『コンテンツ管理ガイド』の「アクティベーションキーの作成」を参照してください。
10.2. Satellite Server への Amazon EC2 接続の追加 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Satellite Server のコンピュートリソースに Amazon EC2 接続を追加します。
時間設定および Amazon Web Services
Amazon Web Services は、認証プロセスの一環として時間設定を使用します。Satellite Server の時間が正常に同期されていること、さらに、ntpd または chronyd などの NTP サービスが Satellite Server で適切に実行されていることを確認します。Amazon Web Services に正確な時間を指定できないと、認証が失敗する可能性があります。時間の同期に関する詳細は、『インストールガイド』 の 「時間の同期」 を参照してください。
手順
Amazon EC2 接続を追加するには、以下の手順を実行します。
- Satellite Web UI で インフラストラクチャー > コンピュートリソース に移動して、コンピュートリソースのウィンドウで コンピュートリソースの作成 をクリックします。
- 名前 フィールドには、Amazon EC2 コンピュートリソースを識別するための名前を入力します。
- プロバイダー の一覧から EC2 を選択します。
- 説明 フィールドには、今後使用する時にリソースを特定できるように名前を入力します。
- HTTP プロキシー リストから、外部 API サービスに接続する HTTP プロキシーを選択します。このリストからプロキシーを選択する前に、HTTP プロキシーを追加する必要があります。詳細は、『接続ネットワークからの Satellite Server のインストール』の「HTTP プロキシーでの Satellite Server の設定」を参照してください。
- アクセスキー と シークレットキー フィールドで、Amazon EC2 アカウントのアクセスキーを入力します。詳細情報は、Amazon ドキュメントの Web サイトで 「Managing Access Keys for your AWS Account」を参照してください。
- リージョンのロード (Load Regions) ボタンをクリックして リージョン リストにデータを入力します。
- リージョン リストから、使用する Amazon EC2 リージョンとデータセンターを選択します。
- ロケーション タブをクリックして、使用するロケーションが選択されていることを確認します。あるいは、別のロケーションを追加します。
- 組織 タブをクリックして、使用する組織が選択されていることを確認します。あるいは、別のロケーションを追加します。
- 送信 をクリックして Amazon EC2 接続を保存します。
CLI を使用する場合
hammer compute-resource create コマンドで接続を作成します。--user および --password オプションを使用して、アクセスキーとシークレットキーをそれぞれ追加します。
hammer compute-resource create --name "My_EC2" --provider "EC2" \ --description "Amazon EC2 Public Cloud` --user "user_name" \ --password "secret_key" --region "us-east-1" --locations "New York" \ --organizations "My_Organization"
# hammer compute-resource create --name "My_EC2" --provider "EC2" \
--description "Amazon EC2 Public Cloud` --user "user_name" \
--password "secret_key" --region "us-east-1" --locations "New York" \
--organizations "My_Organization"
10.3. Satellite Server への Amazon EC2 イメージの追加 リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 はイメージベースのプロビジョニングを使用して新規ホストを作成します。イメージの詳細を Satellite Server に追加する必要があります。これにはアクセスの詳細およびイメージの場所が含まれます。
手順
- Satellite Web UI で、インフラストラクチャー > コンピュートリソース に移動し、Amazon EC2 接続を選択します。
- イメージ タブをクリックして、新規イメージ をクリックします。
- 名前 フィールドには、今後使用する時にイメージを特定できるように名前を入力します。
- オペレーティングシステム リストから、追加するイメージに対応するオペレーティングシステムを選択します。
- アーキテクチャー リストから、オペレーティングシステムのアーキテクチャーを選択します。
-
ユーザー名 フィールドには、イメージにアクセスするための SSH ユーザー名を入力します。通常、これは
rootユーザーになります。 - パスワード フィールドには、イメージにアクセスするための SSH パスワードを入力します。
-
イメージ ID フィールドには、イメージの Amazon Machine Image (AMI) ID を入力します。通常、この形式は
ami-xxxxxxxxになります。 -
ユーザーデータ リストから、イメージが
cloud-initデータなどのユーザーデータ入力をサポートするかどうかを設定します。ユーザーデータを有効にすると、Finish クリプトは自動的に無効になります。これは、逆の場合にも当てはまります。Finish スクリプトを有効にすると、ユーザーデータが無効になります。 - IAM ロール リストから、イメージの作成に使用する Amazon のセキュリティーロールを選択します。
- 送信 をクリックしてイメージの詳細を保存します。
CLI を使用する場合
hammer compute-resource image create コマンドでイメージを作成します。--uuid フィールドを使用して Amazon EC2 サーバーのイメージの場所の完全パスを保存します。
hammer compute-resource image create --name "Test Amazon EC2 Image" \ --operatingsystem "RedHat 7.2" --architecture "x86_64" --username root \ --user-data true --uuid "ami-my_ami_id" --compute-resource "My_EC2"
# hammer compute-resource image create --name "Test Amazon EC2 Image" \
--operatingsystem "RedHat 7.2" --architecture "x86_64" --username root \
--user-data true --uuid "ami-my_ami_id" --compute-resource "My_EC2"
10.4. Amazon EC2 の詳細のコンピュートプロファイルへの追加 リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 のインストールのハードウェア設定をコンピュートプロファイルに追加します。
手順
ハードウェア設定を追加するには、以下の手順を行います。
- Satellite Web UI で インフラストラクチャー > コンピュートプロファイル に移動して、プロファイルの名前をクリックして EC2 接続の名前をクリックします。
- フレーバー リストから、ホストに使用する EC2 のハードウェアのプロファイルを選択します。
- イメージ リストから、イメージベースのプロビジョニングに使用するイメージを選択します。
- 利用可能ゾーン (Availability zone) リストから、EC2 リージョン内で使用するターゲットクラスターを選択します。
- サブネット リストから EC2 インスタンスのサブネットを追加します。新規ホストのプロビジョニング用の VPC がある場合は、そのサブネットを使用します。
- セキュリティーグループ リストから、ホストに適用するポートおよび IP アドレスのクラウドベースのアクセスルールを定義します。
-
管理 IP リストから、
パブリックIP またはプライベートIP のいずれかを選択します。 - 送信 をクリックしてコンピュートプロファイルを保存します。
CLI を使用する場合
コンピュートプロファイルの CLI コマンドは、Red Hat Satellite 6.4 ではまだ実装されていません。代替方法として、ホストの作成プロセスで同じ設定を直接組み込むことができます。
10.5. Amazon EC2 でのイメージベースのホストの作成 リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 プロビジョニングプロセスでは、Amazon EC2 サーバーで既存イメージから新規ホストを作成します。
手順
- Satellite web UI で、ホスト > 新規ホスト に移動します。
- 名前 フィールドには、ホストの名前を入力します。
- ホストグループ リストから、ホストグループを選択して、新規ホストのフィールドの大部分にデータを投入することができます。
- デプロイ先 リストから、EC2 接続を選択します。
- コンピュートプロファイル リストから、仮想マシンベースの設定を自動的に投入するために使用するプロファイルを選択します。
- インターフェース タブをクリックしてから、ホストのインターフェースの 編集 をクリックし、フィールドに値が投入されていることを確認します。Mac アドレス のフィールドは空白にします。Satellite Server は自動的に、ホストの最初のインターフェースの IP アドレスと Managed, Primary および Provision オプションを選択します。
- オペレーティングシステム タブをクリックして、全フィールドに値が投入されていることを確認します。
- 仮想マシン タブをクリックして、全フィールドに値が投入されていることを確認します。
- パラメーター タブをクリックして、存在するパラメーターでアクティベーションキーが提供されていることを確認します。提供されていない場合には、アクティベーションキーを追加します。
- 送信 をクリックして変更を保存します。
この新規ホストのエントリーは、Amazon EC2 サーバーが新規ボリュームのベースとして既存イメージを使用し、インスタンスを作成するようトリガーします。
CLI を使用する場合
hammer host create コマンドでホストを作成し、--provision-method image を組み込んでイメージベースのプロビジョニングを使用します。
このコンピュートリソースのホスト作成パラメーターに関する情報は、付録B Hammer CLI の追加のホストパラメーターを参照してください。
10.6. SSH での Amazon EC2 インスタンスへの接続 リンクのコピーリンクがクリップボードにコピーされました!
SSH を使用して、Satellite Server から Amazon EC2 インスタンスにリモートで接続することができますが、Red Hat Satellite を介してプロビジョニングする Amazon Web Services EC2 インスタンスへ接続するには、Foreman データベースのコンピュートリソースに関連するプライベートキーに最初にアクセスし、このキーを使って認証する必要があります。
プライベートキーの場所を確認し、SSH を使用して Amazon EC2 サーバーへ接続するには、以下の手順を実行します。
Satellite Server ベースシステムで、コンピュートリソースリストの場所を確認するには、以下のコマンドを入力し、使用するコンピュートリソースの ID を確認します。
hammer compute-resource list
# hammer compute-resource listCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーを
postgresユーザーに切り替えます。su - postgres
# su - postgresCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresシェルを開始します。psql
$ psqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresユーザーとして、Foreman データベースに接続します。postgres=# \c foreman
# postgres=# \c foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow compute_resource_id = 3であるkey_pairsから、シークレットを選択します。select secret from key_pairs where compute_resource_id = 3; secret
# select secret from key_pairs where compute_resource_id = 3; secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
-----BEGIN RSA PRIVATE KEY-----以降、-----END RSA PRIVATE KEY-----までキーをコピーします。 .pemファイルを作成し、ファイルにキーを貼り付けます。vim Keyname.pem
# vim Keyname.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow .pemファイルへのアクセスを制限するよう確認します。chmod 600 Keyname.pem
# chmod 600 Keyname.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow Amazon EC2 インスタンスへ接続するには、以下のコマンドを入力します。
ssh -i Keyname.pem ec2-user@example.aws.com
ssh -i Keyname.pem ec2-user@example.aws.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.7. Amazon Web Service EC2 環境向けフィニッシュテンプレートの設定 リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 環境で Red Hat Enterprise Linux インスタンスをプロビジョニングする間、Red Hat Satellite のフィニッシュテンプレートを使用できます。
Amazon EC2 向けのフィニッシュテンプレートを設定するには、以下の手順を実行します。
- Red Hat Satellite 6 Web UI で、ホスト > プロビジョニングテンプレート に移動します。
-
プロビジョニングテンプレート ページの検索フィールドに
Kickstart default finishを入力し、検索 をクリックします。 - Kickstart default finish テンプレートで、クローン を選択します。
- 名前 フィールドに、テンプレート向けに独自の名前を入力します。
テンプレートで、
subscription-manager registerコマンドおよびyumコマンド以外の root 権限が必要な各コマンドをsudoで指定します。または、以下の行を追加してテンプレート全体を sudo ユーザーとして実行します。sudo -s << EOS _Template_ _Body_ EOS
sudo -s << EOS _Template_ _Body_ EOSCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 関連付け タブをクリックし、使用する Red Hat Enterprise Linux オペレーティングシステムとテンプレートを関連付けします。
- ロケーション タブをクリックして、ホストがある場所を追加します。
- 組織 タブをクリックして、ホストが属する組織を追加します。
- 必要なカスタマイズまたは変更を追加したら、送信 をクリックしてテンプレート保存します。
- ホスト > オペレーティングシステム に移動し、ホスト用に必要なオペレーティングシステムを選択します。
- テンプレート タブをクリックし、フィニッシュテンプレート リストから、フィニッシュテンプレートを選択します。
- ホスト > ホストの作成 に移動し、作成するホストの情報を入力します。
- パラメーター タブをクリックし、ホストパラメーター に移動します。
ホストパラメーター で、パラメーターの追加 ボタンを 3 回クリックし、新しいパラメーターフィールドを 3 つ追加します。以下の 3 つのパラメーターを追加します。
-
名前 フィールドで、
remote_execution_ssh_keysを入力します。対応する 値 フィールドで、cat /usr/share/foreman/.ssh/id_rsa_foreman_proxy.pubの出力を入力します。 -
名前 フィールドで、
remote_execution_ssh_userを入力します。対応する 値 フィールドで、ec2-userを入力します。 -
名前 フィールドで、
activation_keysを入力します。対応する 値 フィールドで、アクティベーションキーを入力します。
-
名前 フィールドで、
- 送信 をクリックして変更を保存します。
10.8. Amazon Web Services と Satellite に関する詳細情報 リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services EC2 で Red Hat Gold Images を確認する方法の詳細は、How to Locate Red Hat Cloud Access Gold Images on AWS EC2 を参照してください。
Linux で Amazon Web Service Client をインストールして使用する方法の詳細は、Amazon Web Services ドキュメンテーションの Install the AWS Command Line Interface on Linux を参照してください。
Amazon Web Services における仮想マシンのインポートおよびエクスポートに関する詳細は、Amazon Web Services ドキュメンテーションの VM Import/Export を参照してください。