nigoblog

技術系会社のCEOブログ~私的編~

VagrantとchefとjenkinsでローカルCIサーバーを作成する~リベンジ編~

f:id:nigohiroki:20121226232746p:plain
以前VagrantとchefとjenkinsでローカルCIサーバを立てることに挑戦したのですが、あえなく途中で挫折...!!

そんなわけで今回はリベンジ編ということで書いていきます。

  1. cookbookの用意
  2. Vagrantfileの編集
  3. Apacheの設定
  4. jenkinsの起動

以上の流れで書いていきます。

cookbookの用意

このリンクheavywater/chef-jenkins · GitHubからcloneしてきます。
具体的には

git clone git@github.com:heavywater/chef-jenkins.git

これでOK!
次はVagrantとchefで簡単お手軽ローカル環境構築 - nigoblogでインストールしたcookbookからapache2とjavaを引っ張ってきてコピー
jenkinsはjavaが必要です。現在cookbookはこんな感じ。

cookbooks/
  apache2/
  java/
  jenkins/

Vagrantfileの編集

Vagrantfileを次のように編集します

Vagrant::Config.run do |config|
  config.vm.box = "CentOS-5.8"
  config.vm.network :hostonly, "192.168.33.10"
  config.vm.provision :chef_solo do |chef|
    chef.cookbook_path = "cookbooks"
    chef.add_recipe("apache2")
    chef.add_recipe("java")
    chef.add_recipe("jenkins")
  end
end

単純にrecipeにjavaとjenkinsを追加しただけです。

Apacheの設定

今回はここがメイン。
Apacheの設定でアクセスすると自動的にjenkinsが開くようにします。
まずはsshコマンド

vagrant ssh

でvagrant内のcentosにアクセスします。

さて…ここからがめちゃくちゃ大変でネットサーフィンしまくりました。
参考にしたURLはこちら
Apache2+Jenkins - Horowitzの開発メモ
Jenkins を CentOS 6.3 にインストール - 俺の成長日記
Setup – Apache and Jenkins « Some thoughts, ideas and fun!!!
Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki

まずはjenkinsの設定から

vi etc/default/jenkins 

このファイルの真ん中らへんに

-- 元々あるとこ --

HTTP_HOST=centos58
HTTP_PORT=8080

----------------

# JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/jenkins"

と追加します。
次にApacheの設定

sudo vi /etc/httpd/sites-available/jenkins

このファイルを次のように書きます。

<VirtualHost *:80>
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/
  ProxyRequests Off

  <Proxy http://localhost:8080/*>
    Order deny,allow
    Allow from all
  </Proxy>
</VirtualHost>

その後、jenkinsとapache両方を再起動

/etc/init.d/jenkins start
/etc/init.d/httpd restart

Apacheの設定は完了!

先人達に感謝っす。。。

jenkinsの起動

vagrantfileでVMのアドレスを

192.168.33.10

と設定しました。
ここでhostsファイルを編集します。

sudo vim /etc/hosts

このファイルに

192.168.33.10 vagrant.ci.server.jp

とします。すると本体からvagrant.ci.server.jpというURLからVMにアクセスできます。

ここまでは以前までで、
このURLを

http://vagrant.ci.server.jp:8080/

とし、chromeなどに書きます。
するとjenkinsが起動されます。
f:id:nigohiroki:20121227010740p:plain
こんな感じです。

というわけで次回、jenkinsで出来ることをどんどん伝えていきます!!
環境構築がものすごく大変なのは全部一緒ですね。

それから今回のことでApacheやらCentOSやらサーバーインフラをだいぶできたのは大きかった!
今後もっと知識を身に着けていきたいと思います!