157 lines
15 KiB
Markdown
157 lines
15 KiB
Markdown
---
|
|
title: Ubuntu 12.04 に jenkins をインストールする
|
|
author: kazu634
|
|
date: 2012-07-29
|
|
url: /2012/07/29/_1778/
|
|
wordtwit_post_info:
|
|
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:5465;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
|
categories:
|
|
- jenkins
|
|
- ubuntu
|
|
|
|
---
|
|
<div class="section">
|
|
<p>
|
|
<a href="http://build-shokunin.org/juc2012/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://build-shokunin.org/juc2012/', ' » Jenkins ユーザ・カンファレンス 2012 東京 日本Jenkinsユーザ会');" target="_blank"> » Jenkins ユーザ・カンファレンス 2012 東京 日本Jenkinsユーザ会</a>に参加してきました。
|
|
</p>
|
|
|
|
<p>
|
|
参加した目的としては
|
|
</p>
|
|
|
|
<ol>
|
|
<li>
|
|
CIツールの目的を知りたい
|
|
</li>
|
|
<li>
|
|
jenkins で何ができるのかを知りたい
|
|
</li>
|
|
<li>
|
|
どのようなことを運用するときに気をつけるべきなのか知りたい
|
|
</li>
|
|
<li>
|
|
CIツールとしてではない jenkins の使い方を知りたい
|
|
</li>
|
|
</ol>
|
|
|
|
<p>
|
|
などといった目的で参加しました。いろいろな発表を聞いて、CIツールの概要・目的、jenkinsの使われ方が理解できたと思います。
|
|
</p>
|
|
|
|
<p>
|
|
そこでさっそく家の VM に jenkins をインストールしてみました。
|
|
</p>
|
|
|
|
<h4>
|
|
参考にしたサイト
|
|
</h4>
|
|
|
|
<ul>
|
|
<li>
|
|
<a href="http://pkg.jenkins-ci.org/debian/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://pkg.jenkins-ci.org/debian/', 'Debian Repository for Jenkins');" target="_blank">Debian Repository for Jenkins</a>
|
|
</li>
|
|
<li>
|
|
<a href="https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu', 'https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu');" target="_blank">https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4>
|
|
インストールログ
|
|
</h4>
|
|
|
|
<p>
|
|
Ubuntu 12.04に jenkins をインストールしました。構成としてはフロントエンドに nginx を使用し、バックエンドの 8080 ポートに jenkins をインストールします:
|
|
</p>
|
|
|
|
<h5>
|
|
jenkinsのインストール
|
|
</h5>
|
|
|
|
<pre class="syntax-highlight">
|
|
$ wget <span class="synSpecial">-q</span> <span class="synSpecial">-O</span> - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key <span class="synStatement">|</span> sudo apt-key add -
|
|
<span class="synStatement">[</span>sudo<span class="synStatement">]</span> password <span class="synStatement">for</span> kazu634:
|
|
OK
|
|
$ sudo sh <span class="synStatement">-c</span> <span class="synStatement">'</span><span class="synConstant">echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list</span><span class="synStatement">'</span>
|
|
$ ll /etc/apt/sources.list.d/
|
|
total <span class="synConstant">12</span>
|
|
drwxr-xr<span class="synStatement">-x</span> <span class="synConstant">2</span> root root <span class="synConstant">4096</span> <span class="synConstant">7</span>月 <span class="synConstant">29</span> <span class="synConstant">22</span>:<span class="synConstant">38</span> ./
|
|
drwxr-xr<span class="synStatement">-x</span> <span class="synConstant">6</span> root root <span class="synConstant">4096</span> <span class="synConstant">7</span>月 <span class="synConstant">29</span> <span class="synConstant">22</span>:<span class="synConstant">37</span> ../
|
|
-rw<span class="synStatement">-r</span>-<span class="synStatement">-r</span>-- <span class="synConstant">1</span> root root <span class="synConstant">45</span> <span class="synConstant">7</span>月 <span class="synConstant">29</span> <span class="synConstant">22</span>:<span class="synConstant">38</span> jenkins.list
|
|
$ sudo aptitude update
|
|
<span class="synStatement">[</span>...<span class="synStatement">]</span>
|
|
$ sudo aptitude <span class="synStatement">install</span> jenkins
|
|
The following NEW packages will be installed:
|
|
ca-certificates-java<span class="synSpecial">{</span>a<span class="synSpecial">}</span> <span class="synStatement">daemon</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> fontconfig<span class="synSpecial">{</span>a<span class="synSpecial">}</span> fontconfig-config<span class="synSpecial">{</span>a<span class="synSpecial">}</span> hicolor-icon-theme<span class="synSpecial">{</span>a<span class="synSpecial">}</span> icedtea<span class="synConstant">-6</span>-jre-cacao<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
icedtea<span class="synConstant">-6</span>-jre-jamvm<span class="synSpecial">{</span>a<span class="synSpecial">}</span> icedtea-netx<span class="synSpecial">{</span>a<span class="synSpecial">}</span> icedtea-netx-common<span class="synSpecial">{</span>a<span class="synSpecial">}</span> java-common<span class="synSpecial">{</span>a<span class="synSpecial">}</span> jenkins libasound2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libasyncns0<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libatk-wrapper-java<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libatk-wrapper-java-jni<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libatk1.<span class="synConstant">0-0</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> libatk1.<span class="synConstant"></span>-data<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libavahi-client3<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libavahi-common-data<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libavahi-common3<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libcairo2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libcups2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libdatrie1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libflac8<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libfontconfig1<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libgdk-pixbuf2.<span class="synConstant">0-0</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> libgdk-pixbuf2.<span class="synConstant"></span>-common<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libgif4<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libgtk2.<span class="synConstant">0-0</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> libgtk2.<span class="synConstant"></span>-bin<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libgtk2.<span class="synConstant"></span>-common<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libjasper1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libjpeg-turbo8<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libjpeg8<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libjson0<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libnspr4<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libnss3<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libnss3-1d<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libogg0<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libpango1.<span class="synConstant">0-0</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> libpcsclite1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libpixman<span class="synConstant">-1-0</span><span class="synSpecial">{</span>a<span class="synSpecial">}</span> libpulse0<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libsndfile1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libthai-data<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libthai0<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libtiff4<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libvorbis0a<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libvorbisenc2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxcb-render0<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxcb-shm0<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxcomposite1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxcursor1<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
libxdamage1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxfixes3<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxft2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxi6<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxinerama1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxrandr2<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxrender1<span class="synSpecial">{</span>a<span class="synSpecial">}</span> libxtst6<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
openjdk<span class="synConstant">-6</span>-jre<span class="synSpecial">{</span>a<span class="synSpecial">}</span> openjdk<span class="synConstant">-6</span>-jre-headless<span class="synSpecial">{</span>a<span class="synSpecial">}</span> openjdk<span class="synConstant">-6</span>-jre-lib<span class="synSpecial">{</span>a<span class="synSpecial">}</span> shared-mime-info<span class="synSpecial">{</span>a<span class="synSpecial">}</span> ttf-dejavu-core<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
ttf-dejavu-extra<span class="synSpecial">{</span>a<span class="synSpecial">}</span> tzdata-java<span class="synSpecial">{</span>a<span class="synSpecial">}</span> x11-common<span class="synSpecial">{</span>a<span class="synSpecial">}</span>
|
|
<span class="synConstant"></span> packages upgraded, <span class="synConstant">69</span> newly installed, <span class="synConstant"></span> to remove and <span class="synConstant"></span> not upgraded.
|
|
Need to get <span class="synConstant">96</span>.<span class="synConstant">1</span> MB of archives. After unpacking <span class="synConstant">181</span> MB will be used.
|
|
Do you want to <span class="synStatement">continue</span>? <span class="synStatement">[</span>Y/n/?<span class="synStatement">]</span> y
|
|
<span class="synStatement">[</span>...<span class="synStatement">]</span>
|
|
</pre>
|
|
|
|
<h5>
|
|
nginxのインストール
|
|
</h5>
|
|
|
|
<pre class="syntax-highlight">
|
|
$ sudo <span class="synSpecial">-s</span>
|
|
<span class="synComment"># nginx=stable</span>
|
|
<span class="synComment"># add-apt-repository ppa:nginx/$nginx</span>
|
|
The program <span class="synStatement">'</span><span class="synConstant">add-apt-repository</span><span class="synStatement">'</span> is currently not installed. You can <span class="synStatement">install</span> it by typing:
|
|
apt-get <span class="synStatement">install</span> python-software-properties
|
|
<span class="synComment"># echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-</span>
|
|
<span class="synPreProc">$nginx</span>-lucid.list
|
|
<span class="synComment"># apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C</span>
|
|
Executing: gpg <span class="synSpecial">--ignore-time-conflict</span> <span class="synSpecial">--no-options</span> <span class="synSpecial">--no-default-keyring</span> <span class="synSpecial">--secret-keyring</span> /tmp/tmp.UpyY1fEVhQ <span class="synSpecial">--trustdb-n</span>
|
|
ame /etc/apt/trustdb.gpg <span class="synSpecial">--keyring</span> /etc/apt/trusted.gpg <span class="synSpecial">--primary-keyring</span> /etc/apt/trusted.gpg <span class="synSpecial">--keyserver</span> keyserver.ubu
|
|
ntu.com <span class="synSpecial">--recv-keys</span> C300EE8C
|
|
gpg: requesting key C300EE8C from hkp server keyserver.ubuntu.com
|
|
gpg: key C300EE8C: public key <span class="synStatement">"</span><span class="synConstant">Launchpad Stable</span><span class="synStatement">"</span> imported
|
|
gpg: no ultimately trusted keys found
|
|
gpg: Total number processed: <span class="synConstant">1</span>
|
|
gpg: imported: <span class="synConstant">1</span> <span class="synStatement">(</span>RSA: <span class="synConstant">1</span><span class="synStatement">)</span>
|
|
<span class="synComment"># apt-get update</span>
|
|
<span class="synStatement">[</span>...<span class="synStatement">]</span>
|
|
<span class="synComment"># apt-get install nginx</span>
|
|
$ <span class="synStatement">cd</span> /etc/nginx/sites-available
|
|
$ sudo <span class="synStatement">rm</span> default
|
|
<span class="synStatement">[</span>sudo<span class="synStatement">]</span> password <span class="synStatement">for</span> kazu634:
|
|
$ sudo vi jenkins
|
|
$ cat jenkins
|
|
upstream app_server <span class="synSpecial">{</span>
|
|
server <span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span>:<span class="synConstant">8080</span> <span class="synIdentifier">fail_timeout</span>=<span class="synConstant"></span><span class="synStatement">;</span>
|
|
<span class="synSpecial">}</span>
|
|
server <span class="synSpecial">{</span>
|
|
listen <span class="synConstant">80</span><span class="synStatement">;</span>
|
|
server_name _<span class="synStatement">;</span>
|
|
location / <span class="synSpecial">{</span>
|
|
proxy_set_header X-Forwarded-For <span class="synPreProc">$proxy_add_x_forwarded_for</span><span class="synStatement">;</span>
|
|
proxy_set_header Host <span class="synPreProc">$http_host</span><span class="synStatement">;</span>
|
|
proxy_redirect off<span class="synStatement">;</span>
|
|
<span class="synStatement">if</span> <span class="synStatement">(!</span>-f <span class="synPreProc">$request_filename</span><span class="synStatement">)</span> <span class="synSpecial">{</span>
|
|
proxy_pass http://app_server<span class="synStatement">;</span>
|
|
<span class="synStatement">break;</span>
|
|
<span class="synSpecial">}</span>
|
|
}
|
|
}
|
|
$ sudo ln <span class="synStatement">-s</span> /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
|
|
$ sudo service nginx <span class="synStatement">restart</span>
|
|
</pre>
|
|
|
|
<h4>
|
|
アクセスしてみる
|
|
</h4>
|
|
|
|
<p>
|
|
<a href="http://f.hatena.ne.jp/sirocco634/20120729234752" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://f.hatena.ne.jp/sirocco634/20120729234752', '');" class="hatena-fotolife" target="_blank"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/s/sirocco634/20120729/20120729234752.jpg" alt="f:id:sirocco634:20120729234752j:image:w360" title="f:id:sirocco634:20120729234752j:image:w360" class="hatena-fotolife" width="360" /></a>
|
|
</p>
|
|
</div> |