UNIX型システムでのTerraformの構成について
Terraformを使用してOracle Cloud Infrastructureコンポーネントを作成するには、Terraformをダウンロードしてインストールする必要があります。必要なインフラストラクチャ・コンポーネントを作成する構成ファイルを作成するTerraformモジュールもダウンロードします。
TerraformをインストールしてTeraformモジュールを保存するシステムは、オンプレミスまたはクラウドのいずれかになります。便宜上、これはローカル・システムまたはローカル・ホストと呼ばれます。
Terraformを実行する前に、次のようにします。
-
コンピュート・インスタンスにアクセスできるようにするために使用するSSH鍵ペアを生成します
-
Terraformによって行われたAPIコールの認証に使用するAPI署名キーの生成
-
アクセスの認証とそのプランの実行にTerraformによって使用される環境変数を設定します
これらの手順を完了したら、Terraform構成ファイルを適用して、インフラストラクチャ・コンポーネントをOracle Cloud Infrastructure上に作成します。
Terraformモジュールのダウンロード
Terraformを使用したOracle Cloud Infrastructureでのインフラストラクチャ・コンポーネントの作成を開始するには、Terraformモジュールをダウンロードしてください。
BastionホストにアクセスするためのSSH鍵ペアの生成
SSH鍵ペアを使用すると、パブリック・サブネットに作成されたインスタンスに安全にアクセスできるようになります。ローカル・ホストにSSH鍵ペアを生成します。そのあと、TerraformモジュールはSSH公開鍵をベース・ホストに追加します。ベース・ホストにパブリック・インターネット経由で接続する必要がある場合は、アクセスを認証するためのSSH秘密鍵を提供します。
ssh-keygen
ユーティリティを使用してSSH鍵ペアを生成できます。SSH鍵にパスフレーズを設定しないでください。
他のインスタンスにアクセスするためのSSH鍵ペアの生成
バックエンド・ホストは、パブリックIPアドレスを持たない他のインスタンスへのSSH転送を可能にし、パブリック・インターネットを介したアクセスを許可しないようにするために使用されます。ベース・ホストから他のインスタンスに安全にアクセスするには、リモート・サブネット内のインスタンスに格納されている公開鍵がローカル・マシンに格納されている秘密鍵と一致するSSH鍵ペアを使用します。セキュリティのベスト・プラクティスとして、このSSH鍵ペアはベース・ホストへのアクセスに使用されるSSH鍵ペアと同じにしないでください。
ローカル・ホストでssh-keygen
を使用して、別のSSH鍵ペアを生成します。このSSH鍵ペアを保存する場所を記録しておきます。
API署名キーの生成
Oracle Cloud InfrastructureでTerraformスクリプトを認証するには、「プライバシ拡張メール(PEM)」形式でRSAキー・ペアを指定する必要があります。このAPI署名キーは、インスタンスへのアクセスに使用するSSH鍵ペアとは異なります。OpenSSL
を使用すると、この鍵ペアを生成できます。
- ホーム領域に非表示のディレクトリを作成して、PEMキーを格納します。入力:
mkdir ~/.oci
- 秘密鍵を生成するには、OpenSSLを使用します。秘密鍵を生成する場合は、2048ビット以上を指定してください。入力:
openssl genrsa -out ~/.oci/key_name.pem 2048
- 秘密鍵のアクセス権を変更して、ユーザーのみが秘密鍵を読み取ることができるようにします。入力:
chmod go-rwx ~/.oci/key_name.pem
- 次に、OpenSSLを使用して、指定した秘密鍵の公開鍵を生成します。入力:
openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
コンソールを使用してAPI署名鍵をアップロードします
API署名キーを生成した後、関連付けられているユーザーの公開鍵をOracle Cloud Infrastructureにアップロードする必要があります。初めてAPI署名キーをアップロードする際には、コンソールを使用する必要があります。その後、APIを使用してAPIキーをアップロードすることもできます。
環境変数の設定
ここで提供されるTerraformモジュールを使用すると、テキスト・ファイルで必要な値を指定して環境変数を設定できます。この場合、ファイルを単にソースにして、必要なすべての環境変数が適切に設定されていることを確認できます。
開始する前に、Oracle Cloud Infrastructureコンソールにログインします。コンソールを使用して次の情報を検索します。
-
Tenancy Oracle Cloud Infrastructure ID (OCID)
-
ユーザーOCID
-
使用するAPI署名キーのフィンガープリント
-
リージョン
-
コンパートメントOCID
また、API署名キーおよびSSH鍵のペアがローカル・システムに格納されている場所も確認してください。
- ローカル・システムで、Terraformモジュールが存在するディレクトリにナビゲートします。
- テキスト・エディタでファイル
env-vars
を開きます。 env-vars
ファイルには4つのセクションがあります。「認証の詳細」セクションから始めます。- Tenancy OCIDを入力します。Tenancy OCIDは、Oracle Cloud Infrastructureコンソールの下部にあります。これは、
ocid1.tenancy.oc1..aaaaa...
のような文字列です。この値をenv-vars
ファイルに貼り付けます。 - ユーザーOCIDを入力します。ユーザーOCIDを検索するには、Oracle Cloud Infrastructureコンソールで、「アイデンティティ」をクリックし、「ユーザー」をクリックします。ユーザーOCIDとともに、ユーザーのリストが表示されます。ユーザー名の下にある「コピー」をクリックして、必要なユーザーOCIDをコピーします。この値を
env-vars
ファイルに貼り付けます。 - API署名キー・フィンガープリントを入力します。Oracle Cloud Infrastructureコンソールの「ユーザー」ページで、ユーザーをクリックするとユーザーの詳細ページが表示されます。「APIキー」セクションにリストされているキーからAPIキー ・フィンガープリントをコピーします。この値を
env-vars
ファイルに貼り付けます。 - ローカル・システム上のAPI秘密鍵の完全なパスとファイル名を入力します。
- Tenancy OCIDを入力します。Tenancy OCIDは、Oracle Cloud Infrastructureコンソールの下部にあります。これは、
env-vars
ファイルのリージョン・セクションで、インフラストラクチャ・コンポーネントを作成するリージョンを入力します。現在表示しているリージョンがOracle Cloud Infrastructureコンソールの上部に表示されます。コンソールを使用して、アクセス権がある他のリージョンを検索することもできます。env-vars
ファイルの区分セクションで、インフラストラクチャ・コンポーネントを作成する区分のcompartment OCIDを入力します。前に指定したユーザーが、ここで指定する区分に必要な権限を持つグループに属していることを確認してください。コンパートメントOCIDを検索するには、Oracle Cloud Infrastructureコンソールに移動します。「アイデンティティ」をクリックし、「区分」をクリックします。コンパートメントOCIDとともに、区分のリストが表示されます。区分名の下の「コピー」をクリックして、必要な区分OCIDをコピーします。この値をenv-vars
ファイルに貼り付けます。env-vars
ファイルの公開鍵/秘密鍵セクションで、ベース・ホストおよびその他のインスタンスに対して、ローカル・システム上の適切なSSH公開鍵および秘密鍵の完全なパスとファイル名を入力します。秘密鍵はopenssh
形式にする必要があります。- すべての値を正しく入力していることを確認してください。値を省略した場合、Terraformの実行時に入力を求めるプロンプトが表示されます。正しくない値を指定すると、Terraformがエラー・アウトします。すべての値が正しいことを確認したら、
env-vars
ファイルを保存して閉じます。 env-vars
ファイルに指定された環境変数を設定するには、端末を開き、Terraformモジュールのあるディレクトリにナビゲートします。入力:source ./env-vars