オリジナル: 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
ではなく--argument
s
Realm
です。
非常に簡単な起動用スクリプト
このスクリプトは、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の引数の近くにせっていされていて、正しく動作しているかを確認して下さい)