cloud-init
[更新: 2024年5月23日]
概要
cloud-init機能は、cloud-initに対応した弊社提供 パブリックアーカイブ (アーカイブ名の末尾に「(cloudimg)」が付くもの)をソースとして作成されたディスクを接続したサーバの初回電源投入時、指定した構成情報に従ってサーバの初期設定を行うことができる機能です。これにより、サーバ作成時のホスト名やパスワードの設定、sshの公開鍵の設置など、cloud-initがサポートする範囲で様々な設定を自動的に行うことができます。
注釈
ユーザデータの記述方法など、cloud-initの詳細については cloud-initの公式ドキュメント を参照ください。
Metadata
さくらのクラウドのcloud-init機能で利用可能な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.NameServers[] |
リージョンのネームサーバ |
サーバに接続されているディスクに関する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 |
インターフェースに設定されているパケットフィルターの情報 |
cloud-initの利用方法
サーバの新規作成時
サーバの新規作成時、ディスクのソースとしてcloud-init対応パブリックアーカイブを指定するとcloud-init設定用フォームが表示され、入力内容に従った設定でサーバを起動することができます。
注意
サーバ新規作成時にcloud-init設定フォームに指定した内容が有効になるのは「作成後すぐに起動」のチェックを有効にした場合のみです。サーバ作成と起動を同時に行わない場合は「cloud-init起動」による電源操作、またはAPIでのユーザ設定・起動をご利用ください。
サーバ作成の画面に移動(サーバの作成の詳細については、 こちらのページ をご参照ください。)
サーバ作成画面の「ディスク > アーカイブ選択」からcloudimgのアーカイブを選択

「cloud-init設定」からサーバの基本設定を入力
公開鍵、ホスト名、タイムゾーン、ロケールを入力します。

公開鍵は、クラウドアカウントに登録されたもの、もしくはGitHubアカウントに登録されたものを利用することもできます。
注意
cloud-initアーカイブは公開鍵の設定が必須となります。パスワードは「cloud-init設定 > 追加ユーザデータ」より設定可能ですが、セキュリティの観点からパスワードの設定は非推奨です。 また、パスワードを設定される場合は、SHA512でハッシュ化したパスワードを利用するようにしてください。
「cloud-init設定 > 追加ユーザデータ」に必要に応じて追加の設定を入力
下図のように追加のユーザデータの設定をyaml形式で記述することができます。

上図の追加ユーザデータでは、起動時にインストールするパッケージの設定やキーボードの設定などを行い、これら全ての処理が終了した後サーバの再起動が実施されます。 このように追加ユーザデータにcloud-initのモジュールを記述いただくことで、サーバの初期設定をカスタマイズすることができます。 cloud-initのモジュールの詳細については、 cloud-init公式ページのModules をご参照ください。
注意
追加ユーザデータにホスト名、タイムゾーン、ロケールを記述された場合、「cloud-init設定 > ホスト名、タイムゾーン、ロケール」に入力された内容は、追加ユーザデータで指定されたものに上書きされます。ただし、サーバを複数台同時に作成される場合に限り、「cloud-init設定 > ホスト名」から入力した内容が優先され、ホスト名フィールドに入力された内容の連番(hostname-01, hostname-02...)で設定されることにご注意ください。
サーバ作成をクリックしサーバを作成
サーバの初回起動操作時
cloud-init対応パブリックアーカイブをソースとしたディスクを接続したサーバの初回起動時は、 電源操作 メニューより「cloud-init起動」を選択することでcloud-initの設定内容に従ってサーバを起動することができます。
注意
cloud-init非対応パブリックアーカイブを使用していたり、2回目以降の起動の場合は、「cloud-init起動」を実行しても設定は反映されません。通常の「起動」操作と同様にサーバが起動されます。

実際の起動前に操作確認画面が表示されるので、ここで スタートアップスクリプト に登録済みのyaml_cloud_configクラスのスクリプトを選択、またはテキストエリアに直接記述した内容でサーバが設定されます。

APIでの設定・起動
cloud-init対応パブリックアーカイブをソースとしたディスクを接続したサーバの初回起動時は、APIでユーザデータを指定し起動することも可能です。APIの詳細に関しましては、 さくらのクラウドAPIドキュメント を参照ください。