Terraformによって作成されたクライアントの自動登録

Terraformによって作成された新しいクライアントはSUSE Managerに自動的に登録できます。 次の2つの登録方法があります。

  • cloud-initベースの登録

  • リモート実行プロビジョナーベースの登録

1. cloud-initベースのクライアント登録

新しく作成された仮想マシンを自動的に登録するには、cloud-initを活用して登録することをお勧めします。 このソリューションでは、ホストへのSSH接続を設定する必要がありません。 また、クライアントの作成に使用するツールに関係なく使用することができます。

ユーザは、マシンをSUSE Managerに自動的に登録するために、Terraformを使用してイメージを展開するときにユーザデータのセットを渡すことができます。 user_dataはブートストラップ時にマシンを初めて起動したときのみ1回だけ実行されます。

cloud-initを使用してクライアントを登録する前にユーザは以下を設定する必要があります。

次のコマンドを実行すると、ブートストラップスクリプトがダウンロードされ、新しいマシン作成時にそのマシンが登録されます。 これをcloud-init設定に追加する必要があります。

curl -s http://hub-server.tf.local/pub/bootstrap/bootstrap-default.sh | bash -s

user_dataが更新されてプロビジョニングが変更されると必ず、Terraformはそのマシンを破棄してから新しいIPなどを使用して再作成します。

AWSでのcloud-initに関する詳細については、https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/cloudinit_configを参照してください。

2. remote-execプロビジョナーベースの登録

新しく作成した仮想マシンの自動登録の2番目のソリューションではTerraformのremote-execプロビジョナーを使用します。

remote-execプロビジョナーは新しく作成されたマシンとやり取りします。 これは、SSH接続を開き、そのマシンでコマンドを実行できます。

リモート実行プロビジョナーを使用してクライアントを登録するとき、ユーザは、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を参照してください。