Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Using Hudson/Starting and Accessing Hudson"
(New page: == Starting Hudson == The easiest way to execute Hudson is through the built in Winstone servlet container. You can execute Hudson like this: {code}$ java -jar hudson.war {code}Of course,...) |
|||
Line 2: | Line 2: | ||
The easiest way to execute Hudson is through the built in Winstone servlet container. You can execute Hudson like this: | The easiest way to execute Hudson is through the built in Winstone servlet container. You can execute Hudson like this: | ||
− | + | ||
− | + | $ java -jar hudson.war | |
− | + | ||
− | + | Of course, you probably want to send the output of Hudson to a log file, and if you're on Unix, you probably want to use nohup: | |
+ | |||
+ | $ nohup java -jar hudson.war > $LOGFILE 2>&1 | ||
== Accessing Hudson == | == Accessing Hudson == | ||
− | To see Hudson, simply bring up a web browser and go to URL | + | To see Hudson, simply bring up a web browser and go to URL http://myServer:8080 where myServer is the name of the system running Hudson. |
− | + | Top of page | |
− | == Command Line Parameters == | + | == <br>Command Line Parameters == |
− | Hudson normally starts up using port 8080, however, if you have other web services starting up, you might find that this port is already taken, you can specify a different port by using the | + | Hudson normally starts up using port 8080, however, if you have other web services starting up, you might find that this port is already taken, you can specify a different port by using the --httpPort=$HTTP_PORT where $HTTP_PORT is the port you want Hudson to run on. Other command line parameters include: |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <br>Command Line Parameter Description | |
− | + | <br>--httpPort=$HTTP_PORT Runs Hudson listener on port $HTTP_PORT using standard http protocol. The default is port 8080. To disable (because you're using https), use port -1.<br>--httpListenAddress=$HTTP_HOST Binds Hudson to the IP address represented by $HTTP_HOST. The default is 0.0.0.0 — i.e. listening on all available interfaces.<br>--httpsPort=$HTTP_PORT Uses HTTPS protocol on port $HTTP_PORT<br>--httpsListenAddress=$HTTPS_HOST Binds Hudson to listen for HTTPS requests on the IP address represented by $HTTPS_HOST.<br>--argumentsRealm.passwd.$ADMIN_USER Sets the password for user $ADMIN_USER. If Hudson security is turned on, you must log in as the $ADMIN_USER in order to configure Hudson or a Hudson project. NOTE: You must also specify that this user has an admin role. (See next argument below).<br>--argumentsRealm.roles.$ADMIN_USER=admin Sets that $ADMIN_USER is an administrative user and can configure Hudson if Hudson's security is turned on. See Securing Hudson for more information. | |
− | + | ||
− | + | Hudson passes all command line parameters to the Winstone servlet container, so you can get more information by looking at the Winstone Command Line Parameter Reference<br>{note:title=Be Careful with Command Line Parameters} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Hudson ignores command line parameters it doesn't understand instead of producing an error. Be careful when using command line parameters and make sure you have the correct spelling. For example, the parameter needed for defining the Hudson administrative user is --argumentsRealm and not --argumentRealm.<br>{note}<br>A very simple init script<br>{info} | |
− | + | ||
− | } | + | |
− | + | The following script is for Ubuntu based systems. For a good startup/shutdown script for Red Hat based systems, see http://www.wakaleo.com/component/content/article/206<br>{info} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | } | + | |
− | case $1 in | + | #!/bin/sh |
− | + | ||
− | + | DESC="Hudson CI Server"<br>NAME=hudson<br>PIDFILE=/var/run/$NAME.pid<br>RUN_AS=hudson<br>COMMAND=java -jar /home/hudson/hudson.war | |
− | + | ||
− | + | d_start() {<br> start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --exec $COMMAND<br>} | |
− | + | ||
− | + | d_stop() {<br> start-stop-daemon --stop --quiet --pidfile $PIDFILE<br> if [ -e $PIDFILE ]<br> then rm $PIDFILE<br> fi<br>} | |
− | + | ||
− | + | case $1 in<br> start)<br> echo -n "Starting $DESC: $NAME"<br> d_start<br> echo "."<br> ;;<br> stop)<br> echo -n "Stopping $DESC: $NAME"<br> d_stop<br> echo "."<br> ;;<br> restart)<br> echo -n "Restarting $DESC: $NAME"<br> d_stop<br> sleep 1<br> d_start<br> echo "."<br> ;;<br> *)<br> echo "usage: $NAME {start|stop|restart}"<br> exit 1<br> ;;<br>esac | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | esac | + | |
exit 0 | exit 0 | ||
− | |||
In Ubuntu 9.04-Server this init-script doesn't work. You have to change the start line to | In Ubuntu 9.04-Server this init-script doesn't work. You have to change the start line to | ||
− | |||
− | |||
+ | start-stop-daemon --start --quiet --background -m --pidfile $PIDFILE --chuid $RUN_AS --exec /usr/bin/java -- -jar /opt/hudson/hudson.war | ||
== Using HTTPS with an existing certificate == | == Using HTTPS with an existing certificate == | ||
If you're setting up Hudson using the built-in Winstone servlet and want to use an existing certificate for HTTPS you'll need to do some converting. First, convert your pem-formatted certificate and key files to a format that the Java keytool can use: | If you're setting up Hudson using the built-in Winstone servlet and want to use an existing certificate for HTTPS you'll need to do some converting. First, convert your pem-formatted certificate and key files to a format that the Java keytool can use: | ||
− | + | ||
− | + | openssl pkcs12 -export -in /path/to/cert -inkey /path/to/key -name "Whatever you want" -out keystore.p12 | |
− | + | ||
− | + | Then use the Java keytool to create a new keystore with that file (keep track of the password you use for the store, you'll need it in the next step): | |
+ | |||
+ | keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore /path/to/hudsonhome/winstone.ks -deststoretype JKS | ||
+ | |||
+ | Finally, add these parameters to your command (filling in or changing values as needed): | ||
+ | |||
+ | --httpPort=-1 --httpsPort=443 --httpsKeyStore=/path/t/hudsonhome/winstone.ks --httpsKeyStorePassword=yourchosenpass | ||
+ | |||
+ | Top of page |
Revision as of 19:52, 3 December 2012
Contents
Starting Hudson
The easiest way to execute Hudson is through the built in Winstone servlet container. You can execute Hudson like this:
$ java -jar hudson.war
Of course, you probably want to send the output of Hudson to a log file, and if you're on Unix, you probably want to use nohup:
$ nohup java -jar hudson.war > $LOGFILE 2>&1
Accessing Hudson
To see Hudson, simply bring up a web browser and go to URL http://myServer:8080 where myServer is the name of the system running Hudson.
Top of page
Command Line Parameters
Hudson normally starts up using port 8080, however, if you have other web services starting up, you might find that this port is already taken, you can specify a different port by using the --httpPort=$HTTP_PORT where $HTTP_PORT is the port you want Hudson to run on. Other command line parameters include:
Command Line Parameter Description
--httpPort=$HTTP_PORT Runs Hudson listener on port $HTTP_PORT using standard http protocol. The default is port 8080. To disable (because you're using https), use port -1.
--httpListenAddress=$HTTP_HOST Binds Hudson to the IP address represented by $HTTP_HOST. The default is 0.0.0.0 — i.e. listening on all available interfaces.
--httpsPort=$HTTP_PORT Uses HTTPS protocol on port $HTTP_PORT
--httpsListenAddress=$HTTPS_HOST Binds Hudson to listen for HTTPS requests on the IP address represented by $HTTPS_HOST.
--argumentsRealm.passwd.$ADMIN_USER Sets the password for user $ADMIN_USER. If Hudson security is turned on, you must log in as the $ADMIN_USER in order to configure Hudson or a Hudson project. NOTE: You must also specify that this user has an admin role. (See next argument below).
--argumentsRealm.roles.$ADMIN_USER=admin Sets that $ADMIN_USER is an administrative user and can configure Hudson if Hudson's security is turned on. See Securing Hudson for more information.
Hudson passes all command line parameters to the Winstone servlet container, so you can get more information by looking at the Winstone Command Line Parameter Reference
{note:title=Be Careful with Command Line Parameters}
Hudson ignores command line parameters it doesn't understand instead of producing an error. Be careful when using command line parameters and make sure you have the correct spelling. For example, the parameter needed for defining the Hudson administrative user is --argumentsRealm and not --argumentRealm.
{note}
A very simple init script
{info}
The following script is for Ubuntu based systems. For a good startup/shutdown script for Red Hat based systems, see http://www.wakaleo.com/component/content/article/206
{info}
- !/bin/sh
DESC="Hudson CI Server"
NAME=hudson
PIDFILE=/var/run/$NAME.pid
RUN_AS=hudson
COMMAND=java -jar /home/hudson/hudson.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
In Ubuntu 9.04-Server this init-script doesn't work. You have to change the start line to
start-stop-daemon --start --quiet --background -m --pidfile $PIDFILE --chuid $RUN_AS --exec /usr/bin/java -- -jar /opt/hudson/hudson.war
Using HTTPS with an existing certificate
If you're setting up Hudson using the built-in Winstone servlet and want to use an existing certificate for HTTPS you'll need to do some converting. First, convert your pem-formatted certificate and key files to a format that the Java keytool can use:
openssl pkcs12 -export -in /path/to/cert -inkey /path/to/key -name "Whatever you want" -out keystore.p12
Then use the Java keytool to create a new keystore with that file (keep track of the password you use for the store, you'll need it in the next step):
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore /path/to/hudsonhome/winstone.ks -deststoretype JKS
Finally, add these parameters to your command (filling in or changing values as needed):
--httpPort=-1 --httpsPort=443 --httpsKeyStore=/path/t/hudsonhome/winstone.ks --httpsKeyStorePassword=yourchosenpass
Top of page