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