サーバーインスタンスのオフィシャルイメージに含まれているcloud-initおよびcloudbase-initの仕様について教えて下さい。

サーバーインスタンス, 仕様

2017年9月22日 (2023年4月25日:更新)

サーバーインスタンスのオフィシャルイメージにはcloud-init(Linux系)およびcloudbase-init(Windows系)が含まれており、これらのファイルの仕様は下記のとおりとなります。

#初回起動時にインスタンスへ各種設定を行うために提供しております。
#初回起動後、お客さまにて無効にしていただくことは問題ございません(cloud-init実行による設定の更新が無効化されること以外の影響はございません)。

■cloud-init(Linux系)

1.実行されるタイミング

・インスタンス起動時(HAによる再起動を含みます)
※メタデータサービスと通信可能な状態である必要がございます。メタデータサービスと通信可能な状態でない場合、実行されません。
(メタデータサービスの仕様についてはサーバーインスタンスの詳細情報を参照ください)

2.影響範囲

・キーペアで設定した内容が反映されます。 ※初回起動時のみ(インスタンス作成による初回起動時のみ)
・Post-install scriptで設定した内容が反映されます。 ※初回起動時のみ(インスタンス作成による初回起動時のみ)
・cloud-initの実行により下記の6つのファイルに変更が加わります。

- /etc/hostname: インスタンス起動時にhostnameがインスタンス名に変更されます。
- /etc/hosts: インスタンス名を変更した場合、インスタンス起動時に設定がhostsへ追加されます。
- /etc/locale.conf: インスタンス作成時にen_US.UTF-8(cloud-initのデフォルト値)に初期化されます。
  ※初回起動時のみ(インスタンス作成による初回起動時のみ)
- /etc/ssh/sshd_config: インスタンス作成時にPasswordAuthentication no(cloud-initのデフォルト値)に初期化されます。
  ※初回起動時のみ(インスタンス作成による初回起動時のみ)
- /etc/ssh/ssh_host_*: インスタンス作成時にssh_host_*が再作成されます。
(/etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_rsa_key.pub, /etc/ssh/ssh_host_ed25519_key.pub,
 /etc/ssh/ssh_host_ecdsa_key.pub, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_ed25519_key, /etc/ssh/ssh_host_rsa_key)
  ※初回起動時のみ(インスタンス作成による初回起動時のみ)
- /etc/sysconfig/network-scripts/ifcfg-eth*: インスタンス起動時に Interface Configuration File を初期化します。

3.参考:回避策(cloud-initによる設定更新の回避策)

  • /etc/cloud/cloud.cfg ファイルのパラメータの更新 (変更) を行うことで、cloud-init の実行による以下のファイルの更新 (変更) を無効化することができます。

/etc/hostname

  • /etc/cloud/cloud.cfg ファイルの以下パラメーターを更新 (変更)
preserve_hostname: true

/etc/hosts

  • /etc/cloud/cloud.cfg ファイルの以下パラメーターを更新 (変更)
manage_etc_hosts: false

/etc/locale.conf

  • /etc/cloud/cloud.cfg ファイルの以下パラメーターを (en_US.UTF-8 や ja_JP.UTF-8 などに) 更新 (変更)
locale: en_US.UTF8

/etc/ssh/sshd_config

  • /etc/cloud/cloud.cfg ファイルの以下パラメーターを更新 (変更)
ssh_pwauth: true

/etc/ssh/ssh_host_*

  • /etc/cloud/cloud.cfg ファイルの以下パラメーターを更新 (変更)
ssh_deletekeys: false

/etc/sysconfig/network-scripts/ifcfg-eth*

  • /etc/cloud/cloud.cfg ファイルの先頭行に以下パラメーターを追加
network:
  config: disabled

 

■cloudbase-init(Windows系)

1.実行されるタイミング

・インスタンス作成時(インスタンス作成による初回起動時のみ)
※メタデータサービスと通信可能な状態である必要がございます。メタデータサービスと通信可能な状態でない場合、実行されません。
(メタデータサービスの仕様についてはサーバーインスタンスの詳細情報を参照ください)

2.影響範囲

・Post-install scriptで設定した内容が反映されます。
・インスタンス作成時にインスタンス名がホスト名に登録されます。

3.参考:回避策(cloudbase-initによるインスタンス作成時におけるホスト名更新の回避策)

・下記の回避策を行うことでcloudbase-initの実行を行わないように設定することが可能です。
当該Windowsインスタンスの
C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\conf
に格納されているcloudbase-init.confについて、
plugins= から cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin を外してください。