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ドキュメント を参照ください。
