sucher

sucher(ズーハー)はエンジニアを応援します。

GCEのVMをRundeckで認識させる

766 views
約 5 分

「Google Compute Engine」(以下GCE)のVMインスタンスをRundeckで認識させるための手順について紹介します。
「Rundeck」や「Google Cloud Platform」(以下GCP)の使い方はQiitaあたりで確認いただいた方が早いと思うので割愛します。

スポンサーリンク



プラグインのインストール

以下コマンドでプラグインをダウンロードし、所有権を「rundeck」に設定します。

Rundeckを再起動します。

再起動完了後、プラグインを認識しているか確認します。
「List Plugins」を確認し、「GCP GCE Resources」が表示されていれば問題ありません。

サービスアカウントの作成

GCEのVMインスタンスを参照する権限が必要になるため、
Rundeckで認識したいプロジェクトにサービスアカウントを作成します。

GCPの管理ツールにログインして「IAMと管理」→「サービスアカウント」へと進みます。

サービスアカウント一覧画面に遷移後、「サービスアカウントを作成」を押下します。

「サービスアカウントを作成」を押下すると以下の画面が表示されます。
役割は「編集者」に設定します。
より強固な権限にする場合は別途役割を作成し、「Compute インスタンス管理者(v1)」のみを許容する設定にしてください。

後ほど必要になる秘密鍵は「json」形式で取得しておきます。
※サービスアカウント名に指定はありません。以下ではrundeckとして作成しています。

Rundeckに秘密鍵を設定

RundeckでGCEのVMインスタンスを参照できるように秘密鍵の設定を行います。
以下のディレクトリにサービスアカウント作成時にダウンロードした秘密鍵を置いてくださ

GitHubのissueにも記載がありますが、readme.mdに記載されている「rundeck-gcp-plugin.json」ではなく、
「rundeck-gcp-nodes-plugin.json」として秘密鍵を置いてください。

Readme.md.
The filename it is reading should be rundeck-gcp-nodes-plugin.json for the service key.

https://github.com/jameshcoppens/rundeck-gcp-nodes-plugin/issues/1

Rundeckで同期設定

最後にGCEのVMインスタンスとRundeckを同期するための設定を行います。
今回は既存プロジェクトを例にしますが、新規プロジェクト作成時も
同様の手順(Resource Model Sourceへの追加)で対応できます。

プロジェクトの設定画面を開いて「Simple Configuration」を押下します。

「Resource Model Source」の欄で「Add Source」を押下します。

「GCP GCE Resources」を選択してください 。

GCPのプロジェクトの情報を入力していきます。
プロジェクトID以外は必要に応じて指定してください。

項目設定値
Project IDGCPのプロジェクトID
Refresh Interval30
Filter Params必要に応じて設定してください(任意)
Endpoint必要に応じて設定してください(任意)
必要に応じて設定してください(任意)
Mapping File必要に応じて設定してください(任意)
Use Default Mappingチェックを入れる(任意)
Only Running Instancesチェックを入れる(任意)

設定値を入力後は「save」を押下して保存してください。

以上で設定は全て完了です。
お疲れ様でした。

動作確認

「Nodes」を確認して、「TAGS」に「gce」があれば同期が正常に行えています。
なお、これだけではrundeckからGCEのインスタンスに接続できません。
別途公開鍵認証の設定が必要ですので、コマンド実行の際はご注意ください。

うまくいかないとき

以下の点を疑ってみてください。

  • サービスアカウントの権限を正しく設定できているか
  • サービスアカウントの秘密鍵は正しいか
  • Rundeck側でプロジェクトIDの設定を間違っていないか

参考URL

スポンサーリンク





コメント

*
*
* (公開されません)

Share / Subscribe
Facebook Likes
Tweets
Hatena Bookmarks
Pinterest
Pocket
Evernote
Feedly
Send to LINE