【CI/CD】GCEのContainer-Optimized OSでSSHポートを変更する by Terraform

GCEのContainer-Optimized OSイメージでSSHポートを変更する時にハマったのでまとめ。
SSH設定ファイル(/etc/ssh/sshd_config)のPort項目を編集する方法ではうまくいかなかった。。。

概要

  • GCEで用意されているイメージContainer-Optimized OSは軽量で最初からdockerが使える代わりに、apt-getやyumなどのパッケージ管理コマンドが使えない。

  • cloud-initという、GCEインスタンスのメタデータ(key: user-data)にセットされたコードを起動時に実行してもらえる機能がある。

  • メタデータにSSHポートを変更するコードをセットすればいいのでは?

SSHポートを変更するコード

Container-Optimized OS for Google Cloud PlatformのSSHポートを変更する

Terraformでメタデータ(key: user-data)のセットの仕方

参考
メタデータをセットする時にmetadata_startup_scriptに書いてて時間無駄にした^^

  • ダメな例

    resource "google_compute_instance" "default" {
    ...
    metadata_startup_script = "code~~~"
    ...
    }
  • いい例

    resource "google_compute_instance" "default" {
    ...
    metadata {
        user-data = "code~~~"
    }
    ...
    }

コメント

タイトルとURLをコピーしました