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でのユーザ設定・起動をご利用ください。

  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. サーバ作成をクリックしサーバを作成

サーバの初回起動操作時

cloud-init対応パブリックアーカイブをソースとしたディスクを接続したサーバの初回起動時は、 電源操作 メニューより「cloud-init起動」を選択することでcloud-initの設定内容に従ってサーバを起動することができます。

注意

cloud-init非対応パブリックアーカイブを使用していたり、2回目以降の起動の場合は、「cloud-init起動」を実行しても設定は反映されません。通常の「起動」操作と同様にサーバが起動されます。

画像ファイル

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

画像ファイル

APIでの設定・起動

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