WindowsシステムでのTerraformの構成について

Terraformを使用してOracle Cloud Infrastructureコンポーネントを作成するには、Terraformをダウンロードしてインストールする必要があります。必要なインフラストラクチャ・コンポーネントの作成に使用する構成ファイルを作成するTerraformモジュールもダウンロードします。

Terraformをインストールし、Teraformモジュールを格納するシステムは、オンプレミスでもクラウドでもかまいません。便宜上、これをローカル・システムまたはローカル・ホストと呼びます。

Terraformを実行する前に:

  • コンピュート・インスタンスへのアクセスを許可するために使用されるSSHキー・ペアの生成

  • TerraformによるAPIコールの認証に使用されるAPI署名キーの生成

  • アクセスを認証し、計画を実行するためにTerraformで使用される環境変数を設定します。

これらのステップを完了すると、Terraform構成ファイルを適用してOracle Cloud Infrastructureにインフラストラクチャ・コンポーネントを作成する準備が整います。

Terraformのインストール

WindowsシステムにTerraformをインストールするには、Terraform Webサイトから適切なパッケージをダウンロードします。

  1. https://www.terraform.io/downloads.htmlに移動します。
  2. 適用可能なパッケージをローカル・システムにダウンロードします。
  3. パッケージをフォルダC:\Program Files (x86)に抽出します。
    このパスは例として使用されます。ただし、Terraformの実行可能ファイルは、ローカル・システムの他の場所にも使用できます。
  4. パス環境変数を更新して、Terraform実行可能ファイルが置かれているフォルダを含めます。
    1. コントロール パネル」に移動します。
    2. 「System」をクリックします。
    3. Windows 10システムでは、「システムの詳細設定」をクリックします。このオプションは、Windowsのバージョンによって異なる場合があります。
      「システムプロパティー」ウィンドウの「詳細」タブが表示されます。
    4. ウィンドウの下部近くにある「環境変数」をクリックします。
      「環境変数」ウィンドウが表示されます。
    5. 「システム変数」ペインで「パス」をクリックし、「編集」をクリックします。
    6. 「新規」をクリックします。Terraform実行可能ファイルが置かれているフォルダへのパスを追加します。
    7. 「OK」をクリックして変更を保存し、「OK」をクリックして「環境変数」ウィンドウを終了します。次に、「OK」を再度クリックして「システム・プロパティ」ウィンドウを終了します。
  5. インストールを確認し、バージョンを確認するには、Windows PowerShellを起動し、terraform -versionと入力します。
    出力にTerraformバージョンが表示されます。例: Terraform v0.11.8

要塞ホストにアクセスするためのSSHキー・ペアの生成

SSH鍵ペアを使用して、パブリック・サブネットで作成されたインスタンスに安全にアクセスできます。SSHキー・ペアをローカル・ホスト上に生成します。その後、TerraformモジュールによりSSH公開鍵が要塞ホストに追加されます。パブリック・インターネットを介して要塞ホストに接続する必要がある場合は、アクセスを認証するためにSSH秘密キーを指定します。

PuTTYgenを使用してSSHキー・ペアを生成できます。SSH鍵のパスフレーズを設定しないでください。

  1. PuTTYgenを起動します。
  2. デフォルトのキー・タイプSSH-2 RSAをそのまま使用し、「Number of bit in a generated key」を2048に設定します(まだ設定されていない場合)。
  3. 「生成」をクリックし、空白領域の周囲でマウスを移動してランダム性を生成します。
    キーが生成され、その値が「パブリック・キーによるOpenSSH authorized_keysファイルへの貼付け」の下に表示されます。
  4. 「Save private key」をクリックします。パスフレーズなしで鍵を保存するかどうかを確認するメッセージが表示されます。「はい」をクリックします。このキーは、任意の場所に格納できますが、簡単にするために、Terraformモジュールが存在する同じフォルダに格納できます。
  5. 次に、公開キーを保存するには、「公開キーからOpenSSH authorized_keysファイルに貼り付ける」フィールドに表示されるすべての生成キーを選択し、コピーして、テキスト・ファイルに貼り付けます。このファイルを秘密キーと同じ場所に保存します。「公開キーの保存」ボタンは使用しないでください。これは、キーをOpenSSH形式で保存するためです。
これで、SSH鍵ペアが生成され、ローカル・システムに格納されました。このキー・ペアが格納されている場所を書き留めておいてください。

他のインスタンスにアクセスするためのSSHキー・ペアの生成

Bastionホストは、パブリックIPアドレスを持たない他のインスタンスへのSSH転送を有効にし、パブリック・インターネットへのアクセスを許可しないために使用されます。要塞ホストから他のインスタンスに安全にアクセスするには、プライベート・サブネットのインスタンスに格納されている公開キーがローカル・マシンに格納されている秘密キーと一致するSSHキー・ペアを使用します。

要塞ホストから他のインスタンスへのアクセスを有効にするために使用するSSH鍵ペアは、OpenSSLやssh-keygen.などのユーティリティを使用して生成する必要があります。PuTTYで使用される.ppk形式はOracle Linuxまたは他のUNIX系オペレーティング・システムではサポートされていないため、PuTTYを使用してWindowsで生成されたSSH鍵ペアは使用できません。SSHトラフィックを他のインスタンスに転送する要塞ホストは、Oracle Linuxイメージを使用することに注意してください。

  1. Git Bashを起動します。
  2. Enter: ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    コマンドの説明は次のとおりです。
    • -t rsaは、RSAアルゴリズムを使用してキーを生成することを指定します。

    • -N ""は、このキーに関連付けるパスフレーズを指定します。引用符の間に何も入力しないでください。鍵はパスフレーズなしで作成されます。

    • -b 2048は、2048ビット・キーを作成することを指定します。これはデフォルトであり、最小の推奨値です。

    • -C "<key_name>"は、このキー・ペアの名前を指定します。

    • -f <path/root_name>は、キーを保存する場所と、公開鍵と秘密鍵のルート名を指定します。公開鍵は、ルート名に.pubが追加されます。

SSH鍵ペアが生成され、指定した場所に保存されます。この場所をノートにとっておいてください。

API署名キーの生成

Oracle Cloud InfrastructureでTerraformスクリプトを認証するには、Privacy Enhanced Mail (PEM)形式のRSAキー・ペアを指定する必要があります。このAPI署名キーは、インスタンスへのアクセスに使用するSSHキー・ペアと同じではないことに注意してください。このキー・ペアは、Git BashでOpenSSLを使用して生成できます。ローカル・システムにGit Bashがすでにインストールされている必要があります。

  1. Git Bashを起動します。
  2. PEMキーを格納する非表示フォルダを作成します。PEMキーは任意の場所に格納できますが、簡単にするために、Terraformモジュールがあるフォルダの下にこのフォルダを作成します。キー・ペアを格納する場所を書き留めておいてください。その場所に移動し、mkdir ./.ociと入力します。
  3. API署名キーを作成するには、openssl genrsa -out ./.oci/key_name.pem 2048と入力します
  4. 秘密キーの権限を変更して、秘密キーを読み取れないようにします。Enter: chmod go-rwx ./.oci/key_name.pem
  5. 次に、特定の秘密キーの公開キーを生成するには、openssl rsa -pubout -in ./.oci/key_name.pem -out ./.oci/key_name_public.pemと入力します。
パブリックおよびプライベートAPIの署名キーは、指定されたフォルダに格納されます。

コンソールを使用したAPI署名キーのアップロード

API署名キーを生成したら、関連するユーザーの公開キーをOracle Cloud Infrastructureにアップロードする必要があります。API署名キーを初めてアップロードする場合は、コンソールを使用する必要があります。その後、APIを使用してAPIキーをアップロードすることもできます。

  1. Oracle Cloud Infrastructureコンソールにログインします。
  2. 「アイデンティティ」「ユーザー」の順にクリックします。
  3. API署名キーを追加するユーザーをクリックします。
  4. ユーザーの詳細ページで、「公開キーの追加」をクリックします。
  5. ローカル・システムで、Git Bashを起動します。API署名キー・ペアを格納したフォルダに移動します。
  6. 公開キーをコピーするには、cat ./key_name_public.pem.と入力します。公開キーの値が表示されます。この値(行-----BEGIN PUBLIC KEY-----および-----END PUBLIC KEY-----.を含む)をコピーします。
  7. コンソールで公開鍵の値を貼り付け、「追加」をクリックします。