最近まで、「一人で開発するならciサーバとかいらないかなー」なんて思っていたのですが、こないだテストが赤い状態でリポジトリにpushしてしまい、やっぱり必要だと考えを改めました。
外部のwebサービスでciを提供しているものを最初に検討しましたが、個人で使うには高いです。例えば Semaphore という Rails 用の ci サービスは一番安い 1 project のみの ci を提供するプランで14ドル、10 project だと 59 ドルします。これはちょっと手が出ません><。結局さくらVPSに jenkins をインストールして使うことにしました。
以下さくらVPSを契約してからのインストール手順です。ssh やドメインの設定については省略します。
jenkins のインストール
なるべくパッケージでインストールする方向でいきます。
sudo yum install java-1.7.0-openjdk
sudo yum install jenkins
java はもしかしたらいらなかったかもしれません。普通に yum でさくっとインストールできます。インストールしたら下記のコマンドで jenkins を起動。
sudo service jenkins start
これでサーバの 8080 番ポートにアクセスすると jenkins が立ち上がっているのが確認できます。サーバのドメインが example.com なら http://example.com:8080 でアクセス出来ます。
80番ポートでアクセスする設定
次は80番ポートでアクセス出来るように、nginx のプロキシ設定をしました。jenkins単体でも80番ポートを受け付けるようにはできるのですが、jenkins 以外でもこのさくらVPSを活用することを想定してこのような手法をとっています。nginx のインストール手順は省略します。設定は下記のような感じで nginx.conf に proxy_pass を設定するだけです。
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
}
...
}
これで http://example.com で jenkins サーバにアクセス出来るようになりました。
jenkins の権限設定
アクセス出来るようになったのはいいですが、現状ではだれでも jenkins の設定を変更できてしまうようです。ユーザ別に権限を設定できるようにしないといけません。nginx でベーシック認証をかけてもいいですが、jenkins でユーザ別の権限設定が出来るようなのでつかってみます。
まずトップページから、jenkinsの管理→システムの設定→アクセス制御 まで遷移します。「権限管理」項目の「行列による権限設定」をチェックし、ユーザを追加して権限を設定します。
その後に、ログインページに戻ってアカウントを登録します。これで特定のユーザ以外はjenkinsの設定を変更できなくなりました。やったね。
タスクの登録等、つづきはまた後日書きます!