Terraformによって作成されたクライアントの自動登録
Terraformによって作成された新しいクライアントは、SUSE Multi-Linux Managerに自動的に登録されます。 登録は2つの方法で実現できます:
-
`cloud-init`ベースの登録
-
リモート実行プロビジョナーベースの登録
1. `cloud-init`ベースのクライアント登録
`cloud-init`を活用して登録することは、新しく作成された仮想マシンの自動登録の推奨方法です。 このソリューションは、ホストへのSSH接続の設定を回避します。 クライアント作成に使用されるツールに関係なく使用できます。
ユーザーは、マシンをSUSE Multi-Linux Managerに自動的に登録するために、Terraformを使用してイメージをデプロイする際にユーザーデータのセットを渡すことができます。`user_data`は起動時、つまりマシンを初めて起動したときのみ一度だけ実行されます。
`cloud-init`を使用してクライアントを登録する前に、ユーザーは以下を設定する必要があります:
-
起動スクリプト。 詳細については、ブートストラップスクリプトを使用してクライアントを登録するを参照してください。
-
アクティベーションキー。 詳細については、アクティベーションキーを参照してください。
次のコマンドは、起動スクリプトをダウンロードし、新しいマシンが作成されるときに登録します。 これは`cloud-init`の設定に追加する必要があります:
curl -s http://hub-server.tf.local/pub/bootstrap/bootstrap-default.sh | bash -s
|
`user_data`がプロビジョニング変更のために更新されるたびに、Terraformはそのマシンを破棄し、新しいIPなどを使用して再作成します。 |
2. `remote-exec`プロビジョナーベースの登録
新しく作成された仮想マシンの自動登録の2番目のソリューションでは、Terraformの`remote-exec`プロビジョナーを使用します。
`remote-exec`プロビジョナーは、新しく作成されたマシンと相互作用します。 それはSSH接続を開き、そのマシン上でコマンドを実行できます。
|
`remote-exec`プロビジョナーを使用してクライアントを登録する際、ユーザーはTerraformを実行しているマシンが、新しく作成された仮想マシンにアクセスできることを確認する必要があります。 |
残りの要件は、`cloud-init`ベースのクライアント登録を使用する場合と同じです:
-
起動スクリプト。 詳細については、ブートストラップスクリプトを使用してクライアントを登録するを参照してください。
-
アクティベーションキー。 詳細については、アクティベーションキーを参照してください。
次のコマンドは、起動スクリプトをダウンロードし、新しいマシンが作成されるときに登録します。 実行するリモートコマンドとして定義する必要があります:
curl -s http://hub-server.tf.local/pub/bootstrap/bootstrap-default.sh | bash -s
`remote-exec`プロビジョナーの詳細については、 https://www.terraform.io/docs/provisioners/remote-exec.html.を参照してください。