Jenkins is a CI (continuous integration) server. It can be a very handy tool for developers. In this tutorial, I will show you how to install and set up Jenkins.
First off, we need to add the key and source list to apt. We can do this by executing the following commands.
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -
echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list
apt-get updateNext, install Jenkins. Note that this can take quite some time.
apt-get install jenkinsTime to configure Jenkins. By default, Jenkins runs on port 8080, so you can access it by visiting http://[SERVER_IP]:8080 it in your web browser.
By default, everyone has access to Jenkins. You may want to add a password so that not everyone can use it. To add a password, go to Manage Jenkins (left). You will see a warning; click on Setup Security next to it.
When asked, choose Jenkins’s user database and Matrix-based security. Anonymous should only have Read. Save these settings.
Jenkins will ask you to sign up now. Choose a username, password, email address, and full name. Click Sign up. You’ll now be the administrator of your Jenkins server.
If you want to be able to use a domain name with your Jenkins server, but you don’t want people to have to type :8080 after it each time, we can set up iptables so all traffic from port 80 will be redirected to port 8080. Add the following iptables rules.
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080Make sure to save and restart iptables.
service iptables save
service iptables restartIn Jenkins, you can have multiple jobs; that means that you have multiple projects that you can build. To add a job, click “New Job” (you have to be logged in). From here, it should be pretty straightforward; if you have a Maven project, click Maven, of course!
If you want to use Apache as a reverse proxy, that’s easy with Jenkins!
You need the following Apache modules to be installed.
a2enmod proxy
a2enmod proxy_httpNow add a virtual host.
<VirtualHost *:443>
ServerName jenkins.domain
ServerAlias www.jenkins.domain
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/crt/jenkins.domain.crt
SSLCertificateKeyFile /etc/apache2/ssl/key/jenkins.domain.key
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.host/
<Proxy http://localhost:8080/*>
Order allow,deny
Allow from all
</Proxy>
ProxyPreserveHost on
</VirtualHost>This will allow you to use Jenkins with SSL.
There are a lot of plugins for Jenkins; they allow you to do a lot of things. To install a plugin, go to Manage Jenkins and then click on Manage Plugins. This area will allow you to install plugins.
Although this is slightly off-topic, I still thought I’d share how to increase the memory assigned to Maven. You need to edit MAVEN_OPTS. For example:
set MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"