さくらのクラウドにはスタートアップスクリプトという機能があります。これはサーバの起動時に予め設定したスクリプトを実行することでサーバのセットアップや起動時に繰り返し行っておきたい処理を自動的に実行してくれるものです。

予め幾つかのスクリプトが公開されていますが、今回はGitリポジトリを管理するGitLabをインストールするスクリプトを自作してみたいと思います。

スクリプトを作成する

まず最初にスタートアップスクリプトを作成する必要があります。これはさくらのクラウドの設定画面の中にあるスクリプトメニューにあります。

そして、スクリプトを作成していきます。これは特別な設定は殆どなく、シェルスクリプトを書いていけば良いだけです。

今回のスクリプトは次のようになります。

#!/bin/bash

# @sacloud-once

# @sacloud-desc Ubuntu 16.04にGitLabをインストールするスタートアップスクリプトです
# @sacloud-require-archive distro-ubuntu

#———START INSTALLING LIBRARIES———#
apt-get update
debconf-set-selections <<< "postfix postfix/mailname string localhost"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt-get -y install curl openssh-server ca-certificates postfix
#———END INSTALLING LIBRARIES———#

#———START INSTALLING GITlAB———#
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
apt-get install gitlab-ce
#———END INSTALLING GITlAB———#

#———START CONFIGURE GITlAB———#
gitlab-ctl reconfigure
echo "gitlab-ctl start" >> /etc/rc.local
#———END CONFIGURE GITlAB———#

exit 0

スクリプトの内容

スクリプトの内容を解説します。 @sacloud-once は初回起動時のみ実行するスクリプトであるという宣言になります。 @sacloud-desc はスクリプトの説明文です。 @sacloud-require-archive は特定のディストリビューションだけに対応する場合の指定で、今回は Ubuntu 16.04を対象としています。

#!/bin/bash

# @sacloud-once

# @sacloud-desc Ubuntu 16.04にGitLabをインストールするスタートアップスクリプトです
# @sacloud-require-archive distro-ubuntu

次はapt-getを使って必要なライブラリをインストールしていくのですが、注意点としてapt-getでインストールすると確認画面が出る類のライブラリがあるということです。今回で言えばpostfixがそうで、それを表示させないためにdebconf-set-selectionsにあらかじめ設定を追加しておきます。

#———START INSTALLING LIBRARIES———#
apt-get update
debconf-set-selections <<< "postfix postfix/mailname string localhost"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt-get -y install curl openssh-server ca-certificates postfix
#———END INSTALLING LIBRARIES———#

後はGitLabのインストールを実行します。サーバを起動した際に自動でGitLabが立ち上がるように /etc/rc.local に起動コマンドを書き込んでおきます。

#———START INSTALLING GITlAB———#
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
apt-get install gitlab-ce
#———END INSTALLING GITlAB———#

#———START CONFIGURE GITlAB———#
gitlab-ctl reconfigure
echo "gitlab-ctl start" >> /etc/rc.local
#———END CONFIGURE GITlAB———#

exit 0

このスクリプトを保存すれば準備完了です。

サーバを立ち上げる

では実際にさくらのクラウドでサーバを立ち上げるのですが、注意点としてはシンプルモードを解除する必要があると言うことです。右上にチェックがついていますので、これを外します。

今回はUbuntuをターゲットとしているので、アーカイブとしてUbuntu 16.04を選択してください。そしてスタートアップスクリプトとして、今作成したスクリプトを選択します。

後はサーバを作成し、スタートアップスクリプトが実行されるのをしばらく待ちます。

ステータスを確認する

スタートアップスクリプトは暗黙的に実行されるので、正しく実行されているのか気になる人も多いでしょう。そうした時にはサーバにログインし、 /root/.sacloud-api/notes/スタートアップスクリプトID.log を確認してください。処理が完了している場合には /root/.sacloud-api/notes/スタートアップスクリプトID.done というファイルが生成されています。

GitLabを試す

GitLabのインストールが完了していれば、このように初回起動時のパスワード設定を行う画面が表示されます。初期ユーザ名は root になります。


スタートアップスクリプトを使うことで、サーバ立ち上げからサービスセットアップまでの手間が大幅に減らせるようになります。ぜひお試しください。