cloud-init

[更新: 2023年10月12日]

概要

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