さくらのVPSでOS再インストール|標準OS APIとcurlの使い方

さくらのクラウド # サーバー運用 # さくらのVPS

こんにちは、UOZUです!

以前、さくらのVPSのAPIを利用してOSの再起動を実施してみました。

上記記事の公開時点では、API経由のOS再インストールはISOイメージを使用する方式のみでしたが、2026年7月28日に新機能として「サーバーのOS再インストール(標準OS)」が追加されました。

今回は、この新機能を利用して、curlから標準OSの再インストールを試していきます。

標準OSの再インストールAPIについて

これまでのISOイメージを利用する方式では、API実行後にVNCコンソールから手動でOSのインストール作業を行う必要がありました。

今回追加された標準OSの再インストール機能では、APIからOSイメージと必要な設定を指定して、再インストールを実行できます。

APIの仕様は以下で確認できます。

注意:OS再インストールを実行すると、既存のデータや設定が初期化されます。事前にバックアップなどを取得した上で、対象サーバーに間違いがないことを確認してください。

APIキーの準備

APIを実行するためには、適切な権限を持つロールとAPIキーが必要です。

APIのロール設定画面

ロールの設定はAPIキーの発行手順は前回の記事を参照し、追加ロールとして「OS再インストール(標準OS)」を設定してきます。

まずはAPIキーを環境変数に設定します。

export SAKURA_VPS_TOKEN='xxxxxxxxxxxxxxxx'

続けて、再インストール対象のサーバーIDを設定します。

export SERVER_ID=123456789

※サーバーIDは実際の値に置き換えてください。

標準OSのイメージIDを取得する

OS再インストールを実行するには、インストールしたいOSのイメージIDが必要です。

まずはAPIから標準OSの一覧を取得してみましょう。

curl -sS \
  -H "Authorization: Bearer $SAKURA_VPS_TOKEN" \
  'https://secure.sakura.ad.jp/vps/api/v7/os-images?service_type=linux' \
  | jq -r '.results[] | "\(.id)\t\(.name)"'

97 CentOS Stream 9 x86_64
130 AlmaLinux 8 x86_64
131 Rocky Linux 8 x86_64
132 Ubuntu 22.04 amd64
133 AlmaLinux 9 x86_64
134 Rocky Linux 9 x86_64
135 Debian 12 amd64
136 Debian 11 amd64
137 KUSANAGI 9 (CentOS Stream 9 x86_64)
170 Ubuntu 24.04 amd64
204 AlmaLinux 10 x86_64
205 Rocky Linux 10 x86_64
206 KUSANAGI 9 (AlmaLinux 9 x86_64)
209 Ubuntu 26.04 amd64

このコマンドでは、Linux用の標準OSについて、イメージIDとOS名を一覧で表示します。

一覧からインストールしたいOSのIDを確認しておきましょう。

OS再インストールを実行する

それでは、実際にAPIを使用してOS再インストールを実施してみましょう。

先ほど調べた標準OSのイメージIDを設定します。今回は、「133 AlmaLinux 9 x86_64」を指定してみます。

export OS_IMAGE_ID=133

※希望のイメージIDに置き換えてください。

次に、再インストール後の管理者パスワードを入力します。

read -rsp '管理者パスワード: ' ADMIN_PASSWORD
echo

パスワードは8~32文字で、半角英字・数字・許可された記号(_=+.,-)から2種類以上を組み合わせる必要があります。

最後に、再インストールAPIを実行します。

curl -sS -i -X POST \
  -H "Authorization: Bearer $SAKURA_VPS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d "$(jq -n \
    --argjson osid "$OS_IMAGE_ID" \
    --arg password "$ADMIN_PASSWORD" \
    '{
      os_image_id: $osid,
      admin_password: $password,
      enable_ssh_password_login: true,
      ssh_keys: []
    }')" \
  "https://secure.sakura.ad.jp/vps/api/v7/servers/$SERVER_ID/reinstall"

unset ADMIN_PASSWORD

今回は検証用として、SSHのパスワード認証を有効にしています。本番環境では公開鍵認証の利用を推奨します。

APIが正常に受け付けられた場合、HTTPステータスコード 202 Accepted が返されます。

ただし、この時点ではOSの再インストールが完了したわけではありません。

OS再インストールの完了を確認する

再インストールの進行状況は、サーバーの電源状態を取得するAPIで確認できます。

curl -sS \
  -H "Authorization: Bearer $SAKURA_VPS_TOKEN" \
  "https://secure.sakura.ad.jp/vps/api/v7/servers/$SERVER_ID/power-status" \
  | jq .

{
"status": "installing"
}

OS再インストール中は「installing」となるようですね。

また、管理コンソール上でVPSサーバーの状況を見ると、「インストール中」の表示になっていることが分かります。

公式ドキュメントによると、再インストール中は「OSインストール中」となり、処理が完了すると「電源OFF」に戻ります。

{
"status": "power_off"
}

電源OFFになったことを確認したら、APIからサーバーを起動します。

curl -sS -i -X POST \
  -H "Authorization: Bearer $SAKURA_VPS_TOKEN" \
  "https://secure.sakura.ad.jp/vps/api/v7/servers/$SERVER_ID/power-on"

起動後はSSHで接続し、以下のコマンドでOSのバージョンを確認します。

ssh 198.51.100.100 -l alma

OS再インストール後はSSHホスト鍵が変わり、接続時に警告が表示される場合があります。

管理コンソールなど信頼できる経路で、接続先サーバーの新しいホスト鍵のフィンガープリントを確認してください。接続時に表示される値との一致を確認したうえで、known_hostsをバックアップし、対象サーバーの古い登録を削除して再接続します。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Please contact your system administrator.
Add correct host key in /home/uozu/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/uozu/.ssh/known_hosts:100
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
alma@198.51.100.100: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
ssh-keygen -R 198.51.100.100
ssh 198.51.100.100 -l alma

SSH後、指定したOSがインストールされているか、実際に確認してみましょう。

cat /etc/os-release
AlmaLinux release 9.4 (Seafoam Ocelot)

注意事項

今回のAPIを利用する際には、以下の点に注意が必要です。

  • OS再インストールによって既存データや設定が初期化される
  • 再インストール後はサーバーのインターフェース接続先も初期化される
  • サーバーのバージョンやサービス種別により、必要なパラメータが異なる
  • OSインストール中は電源を起動しない
  • APIキーには必要最小限の権限のみ付与する

特に、スイッチなどを利用している環境では、再インストール後のネットワーク構成にも注意しましょう。

さいごに

今回は、さくらのVPSに新しく追加された標準OS再インストールAPIの利用方法を紹介しました。

従来のISOイメージ方式と異なり、標準OSを指定して再インストールを実行できるため、検証環境の初期化などに活用できそうです。

APIによる電源操作と組み合わせることで、サーバーの初期化から起動までをスクリプト化することも可能になります。

一方で、OS再インストールは既存データを消去する操作となるため、実行対象やバックアップの確認は欠かせません。

さくらのVPSで検証環境を頻繁に作り直す場合には、便利な機能ではないでしょうか。

さいごまでお読みいただき、ありがとうございました!

この記事を書いた人

UOZU

ネットアシスト運用チーム10年目の運用エンジニア

さくらのクラウド検定 ベーシック (第一回)

さくらのクラウド検定 アドバンスド (第一回)

AWS Certified Solutions Architect - Associate

AWS Certified AI Practitioner