スタートアップスクリプトの作り方

さくらのVPS コントロールパネルを使ってスタートアップスクリプトを作成する手順について解説します。

Note

本記事のスクリプトは Ubuntu 24.04 を題材にしています。
現行の標準OSで使える公式スタートアップスクリプトは、 スタートアップスクリプト をご確認ください。
システムアップデートは、公式スタートアップスクリプト Setup and update で実行できます。

スタートアップスクリプトを書いてみよう

本記事では、コマンドをいくつかまとめた簡単なスタートアップスクリプトを作ってみたいと思います。
題材はパッケージを更新して再起動する「apt-get update / upgrade」です。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash
## ScriptName: Ubuntu_apt-update

set -x

export DEBIAN_FRONTEND=noninteractive

apt-get update
apt-get -y upgrade
reboot
1行目の #!/bin/bash はシバン(shebang)といって、どのシェルを使ってスクリプトを実行するかを明記するものです。この場合は/bin/bashを使ってスクリプトを実行しますよ、という意味になります。

2行目の #で始まっている行 はコメントになります。コマンドとして実行されずに飛ばされます。実際のプログラミングではこの場所で何の処理を行っていますというようなことをコメントとして挿入したりします。

4行目の set -x は、実行するコマンドを出力するものです。スタートアップスクリプトの実行が失敗した場合に、後から確認できるようにするためにつけています。

6行目の export DEBIAN_FRONTEND=noninteractive は、パッケージの更新中に確認の画面を表示させないための設定です。スクリプトは自動で実行されるため、人が答える画面が出ると先に進めなくなります。

8行目の apt-get update は、インストールできるパッケージの一覧を最新の状態にするものです。

9行目の apt-get -y upgrade が本体で、このコマンドでサーバーにインストールされているパッケージ(サーバーに入っているソフトウェア群)を更新します。-yをつけると、途中にyes or noで聞かれる部分も全てyesとして実行します。対話的に実行するときは-yはなくても実行できますが、スクリプトの中で自動で実行させる場合には必須になります。なお、 upgrade は新しいパッケージの追加が必要になる更新を見送るため、更新できるパッケージが一部残る場合があります。

10行目の reboot は、パッケージの更新がすべて終わったあとに最新の状態を反映させるためにOSを再起動させるコマンドです。

スタートアップスクリプトを追加して実行してみよう

ここからは実際に さくらのVPS コントロールパネルを触って、スタートアップスクリプトを作って実行してみます。

スクリプトを追加する

  1. コントロールパネルの「スタートアップスクリプト」を開き、「マイスクリプト」タブの「スクリプト追加」をクリックします。

  2. スクリプトの名前を入力します。ここでは「my apt update」としています。

  3. 利用可能OSは「Ubuntu 24.04 amd64」を選択します。

  4. スクリプト本文に、先ほど紹介したスクリプトの全文をコピーして貼り付けます。

  5. パラメーターは、スタートアップスクリプトを実行させる際にユーザーの手入力が必要な項目を入力させることができる機能です。今回は使用しません。

  6. 内容を確認して、画面の下の「追加」をクリックします。マイスクリプトに「my apt update」が表示されれば、スタートアップスクリプトの追加は完了です。

スクリプト追加画面の名前と利用可能OS スクリプト本文の入力 マイスクリプトの一覧

スクリプトを実行する

スタートアップスクリプトの実行にはOSの再インストールが必要になります。OSを再インストールすると今のデータは全て削除されますので、データが削除されても問題ないVPSで試すようにしてください。
  1. コントロールパネルの「サーバー」から、スタートアップスクリプトを実行するVPSの名前をクリックします。

  2. 「OS再インストール」をクリックします。

  3. OSインストール形式は「標準OS」、インストールOSは「Ubuntu」のバージョン「24.04 amd64」を選択します。

  4. 管理ユーザーのパスワードなど、サーバーの管理ユーザー情報を設定します。

    OSとバージョンの選択
  5. 「スタートアップスクリプト」の「スタートアップスクリプトを選ぶ」をクリックし、先ほど作成した「my apt update」を検索して選択します。

    スタートアップスクリプトの検索
  6. 画面の下の「内容確認」をクリックします。

  7. 確認画面で問題がなければ「OS再インストール」をクリックします。

スタートアップスクリプトはOS再インストールが完了してから実行されるため、実際に起動してから利用できるまでしばらく時間をおいてください。スクリプトの最後に再起動が行われるため、再インストール完了後、さらに数分ほどかかる場合があります。以上でスタートアップスクリプトの追加と実行は完了です。

まとめ

今回は公式のスタートアップスクリプトをもとに簡単なスタートアップスクリプトを追加して実行してみました。みなさんもぜひスタートアップスクリプトの作成にチャレンジしてみてください。

提供を終了したOS(CentOS 7)の手順

提供を終了したOS(CentOS 7)の手順はこちら
CentOS 7 は既に提供を終了しています。
以下は、CentOS 7 がインストールされているサーバー向けの手順と、当時のコントロールパネルの画面です。

スタートアップスクリプトを書いてみよう

本記事では、コマンドをいくつかまとめた簡単なスタートアップスクリプトを作ってみたいと思います。
題材は公式スタートアップスクリプトにある「yum update」です。
1
2
3
4
5
6
7
8
#!/bin/bash
## ScriptName: CentOS_yum-update

set -x

yum clean all
yum -y update
reboot
1行目の #!/bin/bash はシバン(shebang)といって、どのシェルを使ってスクリプトを実行するかを明記するものです。この場合は/bin/bashを使ってスクリプトを実行しますよ、という意味になります。

2行目以降 #で始まっている行 はコメントになります。コマンドとして実行されずに飛ばされます。実際のプログラミングではこの場所で何の処理を行っていますというようなことをコメントとして挿入したりします。

4行目の set -x は、コマンドの実行結果を出力するものです。スタートアップスクリプトの実行が失敗した場合に、後から確認できるようにするためにつけています。

6行目の yum clean all は、キャッシュ(今までダウンロードしたrpmファイル、ヘッダファイルなど)すべてを削除するものです。きれいな状態にしてからアップデートをかけるためにこうしています。

7行目の yum -y update が本体で、このコマンドでサーバーにインストールされているパッケージ(サーバーに入っているソフトウェア群)を更新します。-yをつけると、途中にyes or noで聞かれる部分も全てyesとして実行します。対話的に実行するときは-yはなくてっも実行できますが、スクリプトの中で自動で実行させる場合には必須になります。

8行目の reboot は、パッケージの更新がすべて終わったあとに最新の状態を反映させるためにOSを再起動させるコマンドです。

スタートアップスクリプトを追加して実行してみよう

ここからは実際に さくらのVPS コントロールパネルを触って、スタートアップスクリプトを作って実行してみます。

「新規追加」を選択し、「スクリプト」をクリックします。

スクリプトの名前を入力します。ここでは「my yum update」としています。利用可能OSは「CentOS 7 x86_64」を選択します。

スクリプト本文に、先ほど紹介したyum updateのスクリプト全文をコピーして貼り付けます。

パラメーターはスタートアップスクリプトを実行させる際にユーザーの手入力が必要な項目をスタートアップスクリプト実行時に入力させることができる機能で、これを利用することでスタートアップスクリプトでできることの幅が広がります。今回は使用しませんので、右下の「追加」をクリックします。

以下のように表示されればスタートアップスクリプトを追加は完了です。ここから先では実際にスタートアップスクリプトを使ってみましょう。

スタートアップスクリプトの実行にはOSの再インストールが必要になります。OSを再インストールすると今のデータは全て削除されますので、データが削除されても問題ないVPSで試すようにしてください。
左メニューの「サーバー」をクリックし、スタートアップスクリプトを実行するVPSの名前(ここでは「テスト用」としています)をクリックします。

「OS再インストール」をクリックします。

OSインストール方法は「標準OS」を選択、インストールOSは「CentOS 7 x86_64」を選択します。

サーバーの管理ユーザー情報を設定します。

「スタートアップスクリプトを選ぶ」を選択します。

先ほど作成した「my yum update」を入力して検索、表示されたスタートアップスクリプトをクリックします。

右下の「内容確認」をクリックします。

確認画面で問題がなければ「OS再インストール」をクリックします。

OS再インストールが開始されます。

スタートアップスクリプトはOS再インストールが完了してから実行されるため、実際に起動してから利用できるまでしばらく時間をおいてください。以上でスタートアップスクリプトの追加と実行は完了です。

解説1:スクリプトはコマンドの集合体+α

VPSで使われるUbuntuやAlmaLinuxといったLinux系のOSや、FreeBSDといったUnix系のOSは、コマンドを入力することで設定していきます。
このコマンドを受け付けるプログラムのことをシェルと呼びます。シェルに対してコマンドを送る際は、サーバーにコンソールやSSHでログインをして、1命令ごとに入力していくことが一般的ですが、テキストファイルにコマンドをいくつも並べて、コマンド一式を一気に実行させることも可能です。このコマンドの集合体のテキストファイルの中身を、シェルスクリプトと呼びます。

シェルスクリプトでは、単純にコマンドをまとめて実行するだけでなく、繰り返し(for/while/until)や条件分岐(if/case)などの制御文、変数や配列、関数などのプログラミング言語が備える機能も利用が可能です。これがタイトルに書いた「+α」の部分です。

解説2:さくらのVPSのスタートアップスクリプト

さくらのVPS には「スタートアップスクリプト」という機能がありますが、これはサーバーの購入時やOS再インストール時にシェルスクリプトを一緒に実行して、初期設定の手間を省いてくれるものです。
さくらインターネット公式のスタートアップスクリプトには、システムアップデート(簡単に言うとOSの最新状態への更新)をおこなってくれるものから、WordPressのようなブログシステムやMinecraftのようなゲーム用のサーバーを作るスクリプトなどが用意されていて、ユーザーは自分でコマンドを入力してサーバーを構築していく手間なく、すぐにアプリケーションが使えるようになっています。
ユーザーが作ったスタートアップスクリプトをシェアする機能もあり、Terrariaのようなゲーム用のサーバーを作るスタートアップスクリプトなどが公開されています。