cloud-init

[更新: 2021年12月09日]

さくらのクラウドのcloud-init機能に関するページです。

1. 概要

cloud-init機能は、弊社提供のパブリックアーカイブのうち「cloudimg」のアーカイブを元に作成されたサーバに対して、初回の電源を入れる際に、cloud-initを利用しお客様にご入力いただいたユーザデータに従って、サーバの初期設定を行うことができる機能です。 ユーザデータの記述などのcloud-initの詳細については、 cloud-initの公式ドキュメント をご参照ください。

これにより、サーバ作成時のホスト名やパスワードの設定、sshの公開鍵の設置などcloud-initのサポートする範囲で様々な設定を行うことが可能になります。

Metadata

さくらのクラウドで利用可能なMetadataの一覧になります。

サーバの基本情報に関するMetadata
Metadata名 説明
Server.ID インスタンスのID
Server.Name 名前
Server.Description 説明
Server.Availability サーバが利用可能かどうか。利用可能ならavailableがセットされる。
Server.ServiceClass サーバのサービスクラス
Server.InterfaceDriver インターフェースドライバ。virtioがセットされる。
Server.CreatedAt サーバの作成日
Server.ModifiedAt サーバの修正日
Server.Tags[] サーバに設定されているタグの一覧
Server.Icon.ID サーバのアイコンID
Server.Icon.Name サーバのアイコン名
Server.Icon.URL サーバのアイコンのURL
Sever.ServerPlan.ID サーバプランID
Sever.ServerPlan.Name サーバプランの名前
Sever.ServerPlan.CPU CPU数
Sever.ServerPlan.MemoryMB メモリ(MB)
Sever.ServerPlan.GPU GPU数
Sever.ServerPlan.Commitment プラン種別(通常プラン、コア占有プラン、GPUプラン)
サーバのゾーンに関するMetadata
Metadata名 説明
Server.Zone.ID ゾーンのID
Server.Zone.Name ゾーン名
Server.Zone.Description ゾーンの説明
Server.Zone.DisplayOrder ゾーンの表示順
Server.Zone.VNCProxy.IPAddress VNCProxyのIP
Server.Zone.VNCProxy.HostName VNCProxyのホスト名
Server.Zone.FTPServer.IPAddress FTPServerのIP
Server.Zone.FTPServer.HostName FTPServerのホスト名
Server.Zone.Region.ID リージョンID
Server.Zone.Region.Name リージョン名
Server.Zone.Region.Description リージョンの説明
Server.Zone.Region.NameServer リージョンのネームサーバ
サーバに接続されているディスクに関するMetadata
Metadata名 説明
Server.Disks[].ID ディスクのID
Server.Disks[].Name ディスクの名前
Server.Disks[].Connection ディスクの接続ドライバ。virtioがセットされる。
Server.Disks[].ConnectionOrder ディスクの接続順序
Server.Disks[].ReinstallCount ディスクに再インストールを行った回数
Server.Disks[].Availability ディスクが利用可能かどうか。availableの文字列がセットされている場合が利用可能状態。
Server.Disks[].SizeMB ディスクのサイズ(MB)
Server.Disks[].Plan.ID ディスクのプランID
Server.Disks[].BundleInfo ディスクのバンドル情報
Server.Disks[].Storage.ID ストレージID
Server.Disks[].Storage.Class ストレージのクラス。iscsi1204がセットされる。
サーバのインターフェース(NIC)に関するMetadata
Metadata名 説明
Server.Interfaces[].ID インターフェースのID
Server.Interfaces[].MACAddress インターフェースのMACアドレス
Server.Interfaces[].IPAddress インターフェースのIPアドレス
Server.Interfaces[].UserIPAddress インターフェースのユーザIPアドレス
Server.Interfaces[].HostName インターフェースのホスト名
Server.Interfaces[].Switch.ID インターフェースが接続されているスイッチのID
Server.Interfaces[].Switch.Name インターフェースが接続されているスイッチのの名前
Server.Interfaces[].Switch.Scope インターフェースが接続されているスイッチのスコープ。sharedで共有セグメントに接続されていることを表す。
Server.Interfaces[].Switch.Subnet.NetworkAddress インターフェースが接続されているスイッチのサブネットネットワークアドレス
Server.Interfaces[].Switch.Subnet.NetworkMaskLen インターフェースが接続されているスイッチのサブネットマスク長
Server.Interfaces[].Switch.Subnet.DefaultRoute インターフェースが接続されているスイッチのサブネットのデフォルトルート
Server.Interfaces[].Switch.Subnet.Internet.BandWidthMbps インターフェースが接続されているネットワークの帯域幅(Mbps)
Server.Interfaces[].PacketFilter インターフェースに設定されているパケットフィルターの情報

2. cloud-initの利用方法

cloud-initをコントロールパネルからの利用するにあたって、サーバ作成後すぐにサーバを起動をしなければ、サーバの初期設定を行うことができません。 これはサーバ起動時にcloud-initの実行に必要なユーザデータを指定するためです。 作成後にすぐにサーバ起動をしたくない場合は、サーバ作成後APIからユーザデータを指定し起動する必要があります。 APIの詳細に関しましては、 さくらのクラウドAPIドキュメント をご参照ください。 コントロールパネルからcloud-initの利用手順は以下のようになります。

  1. サーバ作成の画面に移動(サーバの作成の詳細については、 こちらのページ をご参照ください。)
  2. サーバ作成画面の「ディスク > アーカイブ選択」からcloudimgのアーカイブを選択
  1. 「cloud-init設定」からサーバの基本設定を入力

公開鍵、ホスト名、タイムゾーン、ロケールを入力します。

公開鍵は、クラウドアカウントに登録されたもの、もしくはGitHubアカウントに登録されたものを利用することもできます。

注意

cloud-initアーカイブは公開鍵の設定が必須となります。パスワードは「cloud-init設定 > 追加ユーザデータ」より設定可能ですが、セキュリティの観点からパスワードの設定は非推奨です。 また、パスワードを設定される場合は、SHA512でハッシュ化したパスワードを利用するようにしてください。

  1. 「cloud-init設定 > 追加ユーザデータ」に必要に応じて追加の設定を入力

下図のように追加のユーザデータの設定をyaml形式で記述することができます。

上図の追加ユーザデータでは、起動時にインストールするパッケージの設定やキーボードの設定などを行い、これら全ての処理が終了した後サーバの再起動が実施されます。 このように追加ユーザデータにcloud-initのモジュールを記述いただくことで、サーバの初期設定をカスタマイズすることができます。 cloud-initのモジュールの詳細については、 cloud-init公式ページのModules をご参照ください。

注意

追加ユーザデータにホスト名、タイムゾーン、ロケールを記述された場合、「cloud-init設定 > ホスト名、タイムゾーン、ロケール」に入力された内容は、追加ユーザデータで指定されたものに上書きされます。ただし、サーバを複数台同時に作成される場合に限り、「cloud-init設定 > ホスト名」から入力した内容が優先され、ホスト名フィールドに入力された内容の連番(hostname-01, hostname-02…)で設定されることにご注意ください。

  1. サーバ作成をクリックしサーバを作成