オリジナル: Starting and Accessing Jenkins
Jenkinsの起動
Jenkinsを起動する一番簡単な方法は、組込みのサーブレットコンテナであるWinstoneを使用することです。以下のようにして起動することができます:
$ java -jar jenkins.war
もちろん、Jenkinsの出力をログファイルに出力したいと思うでしょう。Unixであれば、nohupを使えばできます。
$ nohup java -jar jenkins.war > $LOGFILE 2>&1
Jenkinsにアクセスする
Jenkinsの画面を見るには、ブラウザを立ち上げて、http://myServer:8080 にアクセスしてください。myServerはJenkinsが動作しているサーバーの名称です。
コマンドライン・パラメータ
Jenkinsは通常ポート番号8080を使用して起動しますが、他のWebサービスを起動している場合には、このポート番号が既に使用中かもしれません。
その場合は、--httpPort=$HTTP_PORT ($HTTP_PORTはJenkinsが使用するポート番号)で、違うポート番号を指定することができます。他のコマンドライン・パラメータは次の通りです。
コマンドライン・パラメータ |
説明 |
|---|---|
--javaHome=$JAVA_HOME |
JavaやAntが必要なビルドを実行するときに使用する$JAVA_HOMEをJenkinsに渡します。これはJenkinsを起動するJREではありません(Jenkins上で使用するJREを指定します)。デフォルトは、Jenkinsを実行するのに使用したJREです。 |
--httpPort=$HTTP_PORT |
Jenkinsが使用するHTTPプロトコルのポート番号を指定します。デフォルトは8080です。これを使用しない(_HTTPS_を使用)ようにするには、 |
--httpListenAddress=$HTTP_HOST |
このパラメータで、Jenkinsがリクエストを受け付けるIPアドレスを指定できます。環境変数$HTTP_HOSTが指定されていれば、それを利用します。デフォルトでは 0.0.0.0 です。--- この場合、すべての有効なインタフェース上で(httpPortで指定された)ポートをリスンします。 |
--httpsPort=$HTTP_PORT |
HTTPSプロトコルで使用するポート番号を指定します。 |
--httpsListenAddress=$HTTPS_HOST |
JenkinsがHTTPSプロトコルでリクエストを受け付けるIPアドレスを指定できます。環境変数$HTTPS_HOSTが指定されていれば、それを利用します。 |
--ajp13Port=$AJP_PORT |
標準のAJP13プロトコルを使う場合、$AJP_PORTRを利用して、Jenkinsがリスンするポートを指定できます。デフォルトは8009です。(_HTTPS_を使用するため) これを使用しないようにするには、 |
--ajp13ListenAddress=$AJP_HOST |
JenkinsがAJP13プロトコルのリクエストを受け付ける、IPアドレスを指定できます。デフォルトでは 0.0.0.0 です。 --- i.e. この場合、すべての有効なインタフェース上で(ajpPortで指定された) ポートをリスンします。 |
--argumentsRealm.passwd.$ADMIN_USER=password |
ユーザー $ADMIN_USERのパスワードを設定します。Jenkinsのセキュリティが有効化されている場合、Jenkinsやプロジェクトを設定するために、$ADMIN_USERでログインする必要があります。注意: 管理者権限を持つユーザーも指定しなければなりません。(以下を参照してください) |
--argumentsRealm.roles.$ADMIN_USER=admin |
$ADMIN_USERを管理者として設定し、Jenkinsのセキュリティが有効化されていれば、Jenkinsを設定できるようにします。詳しくはJenkinsのセキュリティを参照してください。 |
Jenkinsはすべてのコマンドライン・パラメータをWinstoneサーブレットコンテナに渡しますので、詳しくはWinstone コマンドライン・パラメータ リファレンスを参考にしてください。
コマンドライン・パラメータに注意
Jenkinsは間違ったコマンドライン・パラメータはエラーを出さずに無視します。コマンドライン・パラメータを使う際には注意深く、スペルミスなどがないようにしてください。例えば、Jenkinsの管理者ユーザーを定義するのは、--argumentRealmではなく--argumentsRealmです。
非常に簡単な起動用スクリプト
このスクリプトは、Ubuntuベースのシステム用です。Red Hat向けの適切な起動/停止スクリプトは、こちら http://www.wakaleo.com/component/content/article/206 をご覧ください。
#!/bin/sh
DESC="Jenkins CI Server"
NAME=jenkins
PIDFILE=/var/run/$NAME.pid
RUN_AS=jenkins
COMMAND=/usr/bin/java -- -jar /home/jenkins/jenkins.war
d_start() {
start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --exec $COMMAND
}
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ -e $PIDFILE ]
then rm $PIDFILE
fi
}
case $1 in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "usage: $NAME {start|stop|restart}"
exit 1
;;
esac
exit 0
HTTPSを、既存の証明書とともに利用する
Jenkinsをビルトインの Winstoneサーバを使って起動させ、かつ、HTTPS (443) で起動し、既存のHTTPS用の証明書も利用したい場合は、このようにします:
--httpPort=-1 --httpsPort=443 --httpsKeyStore=path/to/keystore --httpsKeyStorePassword=keystorePassword
キーストアはJKSフォーマット (JDKの'keytool'として作成されたもの) でないといけません。また、keystore とターゲットの鍵は、同じパスワードでなければいけません。(keystoreの引数をJenkinsの専用のパラメータの後に指定すると、うまく動作しないようです。Winstoneにきちんと渡されない、もしくは、Winstone側で知らないパラメータが指定されると無視してしまうようです。このため、httpsPortの引数の近くにせっていされていて、正しく動作しているかを確認して下さい)