さくらのVPSをAPIで停止・起動する方法|curlで電源操作を試す | さくらのクラウドラボ by NETASSIST
こんにちは、UOZUです! さくらのVPSは、OS再インストールも簡単で検証環境として使いやすいですが、電源操作のたびに会員メニューへログインするのは少し手間に感じることがあります。 今回は、VPSコントロールパネルで発 […]
こんにちは、UOZUです!
以前、さくらのVPSのAPIを利用してOSの再起動を実施してみました。
上記記事の公開時点では、API経由のOS再インストールはISOイメージを使用する方式のみでしたが、2026年7月28日に新機能として「サーバーのOS再インストール(標準OS)」が追加されました。
今回は、この新機能を利用して、curlから標準OSの再インストールを試していきます。
これまでのISOイメージを利用する方式では、API実行後にVNCコンソールから手動でOSのインストール作業を行う必要がありました。
今回追加された標準OSの再インストール機能では、APIからOSイメージと必要な設定を指定して、再インストールを実行できます。
APIの仕様は以下で確認できます。
注意:OS再インストールを実行すると、既存のデータや設定が初期化されます。事前にバックアップなどを取得した上で、対象サーバーに間違いがないことを確認してください。
APIを実行するためには、適切な権限を持つロールとAPIキーが必要です。

ロールの設定はAPIキーの発行手順は前回の記事を参照し、追加ロールとして「OS再インストール(標準OS)」を設定してきます。
まずはAPIキーを環境変数に設定します。
export SAKURA_VPS_TOKEN='xxxxxxxxxxxxxxxx'
続けて、再インストール対象のサーバーIDを設定します。
export SERVER_ID=123456789
※サーバー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を確認しておきましょう。
それでは、実際に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の再インストールが完了したわけではありません。
再インストールの進行状況は、サーバーの電源状態を取得する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を利用する際には、以下の点に注意が必要です。
特に、スイッチなどを利用している環境では、再インストール後のネットワーク構成にも注意しましょう。
今回は、さくらのVPSに新しく追加された標準OS再インストールAPIの利用方法を紹介しました。
従来のISOイメージ方式と異なり、標準OSを指定して再インストールを実行できるため、検証環境の初期化などに活用できそうです。
APIによる電源操作と組み合わせることで、サーバーの初期化から起動までをスクリプト化することも可能になります。
一方で、OS再インストールは既存データを消去する操作となるため、実行対象やバックアップの確認は欠かせません。
さくらのVPSで検証環境を頻繁に作り直す場合には、便利な機能ではないでしょうか。
さいごまでお読みいただき、ありがとうございました!