個人で持っているサーバーが思えばcrontabぐらいしか使ってなくて、
webサーバーとしての用途は中途半端に使っているだけだったので
いっその事分けてしまおうと。
そいでcrontabだけだったらJenkins氏を雇用してみようという試み。
EC2で構築してもよかったのですが
さくらVPSのサーバーをそんなに活用していなかったし、Jenkins氏のビルド後のログ貯めておきたいからディスク容量もそこそこあるのでさくらVPSで。
さくらVPSで使っていたDebian6をOS再インストールしてJenkinsサーバーを構築
業務ではCentOSしか触っていないのですが個人のサーバーくらいはDebian使いたかったのでDebian使用。
ちなみにMac OS X 10.8 Mountain Lion
だとさくらVPSのOSカスタムインストール、
VNCコンソールを開くためにはJava 6
を入れておく必要がある。
MacでさくらVPSのVNC
以後はdebian7のインストール済み&sudo権限ユーザーでsshログイン済み前提
jenkinsインストール
参考
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
ブラウザアクセスhttp://<サーバーIP>:8080
これで完了。jenkins氏の恩恵を受けられる。
以下はもろもろの設定。設定考えるのが楽しかったりする。
認証
jenkins氏は基本的に誰でも心を許してしまう。
(インストール時はブラウザ上から誰でも設定を変更できる)
自分だけに従順で姿を表さないJenkins氏に調教する。
(ユーザーを作成し、そのユーザーでしかビルド実行や閲覧できないようにする)
参考
さくらvpsでjenkinsをセットアップし、認証を行うまで
topページからJenkinsの管理
➡グローバルセキュリティの設定
セキュリティの有効化
にチェック
アクセス制限
のユーザー情報
Jenkinsのユーザーデータベース
にチェックとユーザーにサインアップを許可
にチェック
設定を保存
画面右上のサインアップ
を選択
ユーザーの作成
ここではsoramugi
ユーザーの作成
ログインを行う。
topページからJenkinsの管理
➡グローバルセキュリティの設定
アクセス制限
のユーザー情報
ユーザーにサインアップを許可
のチェックを外す
アクセス制限
の権限管理
行列による権限設定
にチェック
匿名ユーザー
のチェックを全て外した状態を確認
追加するユーザー/グループ:
に作成したユーザーを追加(ここではsoramugi
ユーザー)
追加したユーザーのチェックを全て付ける
設定を保存
念のためログアウトして確認、他のブラウザからアクセスして確認
完了
これで僕らだけのプライベートjenkins氏になった。
port80のapacheでプロキシ噛ませてアクセスする場合
http://<サーバーIP>:8080
からhttp://jenkins.<ドメイン名>
でアクセス出来るようにしてかっこいいjenkins氏にする。
あらかじめhttp://jenkins.<ドメイン名>
でjenkins氏を入れたサーバーを閲覧できるようにAレコードを設定しておく。
参考
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
sudo apt-get install apache2
sudo touch /etc/apache2/sites-available/jenkins
sudo vi /etc/apache2/sites-available/jenkins
ci.company.com
でアクセスさせる設定
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName ci.company.com
ServerAlias ci
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
</VirtualHost>
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2dissite default
sudo a2ensite jenkins
sudo apache2ctl restart
軽く説明すると
/etc/apache2/sites-available/
のディレクトリの中に設定ファイルを作成。
/etc/apache2/sites-enabled/
のディレクトリにエイリアスを張って設定を適応させる。
設定適応させたコマンドがsudo a2ensite jenkins
設定解除がsudo a2dissite default
apacheモジュールの設定も同じく。
debianのapache2の設定は基本エイリアスを張り替えてモジュールやヴァーチャルホストの設定をしたりで設定ファイルを直接編集する必要が無い。
親切設計で好きですね。
まとめ
とりあえずこれで大体の設定は完了。
他にもgitプラグイン入れたりcurlコマンドインストールしたりメール送信の設定だったりあるけど
crontabで設定するとしても同じ作業になるだろうし、jenkinsのプラグインをいれるのはとても簡単で楽。
実行時のログも勝手に保存してくれるので定期処理ばしばし作って行きたいですねー