Contents
Introduction
This document describes the steps to create Peer Jenkins server and establish the connection with the LF master Jenkins
Infrastructure Requirements for VM
Minimum hardware requirements:
- 256 MB of RAM
- 1 GB of drive space (although 10 GB is a recommended minimum if running Jenkins as a docker container)
- Ubuntu 16.04 or higher OS
Recommended hardware configuration:
- 1 GB+ of RAM
- 50 GB+ of drive space
Software requirements:
- Java
- Web browser compatibility
- Docker to be installed if Jenkins server running as a container
Installation Guide
Install Java
Since Jenkins is a Java application, the first step is to install Java. Update the package index and install the Java 8 OpenJDK package with the following commands
sudo apt-get update sudo apt install openjdk-8-jdk
Install Docker
Step 1: First, in order to ensure the downloads are valid, add the GPG key for the official Docker repository to your system
curl -s https://apt.dockerproject.org/gpg | sudo apt-key add apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
Step 2: Add the Docker repository to APT sources
sudo add-apt-repository "deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -cs) main"
Step 3: Next, update the package database with the Docker packages from the newly added repo
sudo apt-get update
Step 4 : Make sure you are about to install from the Docker repo instead of the default Ubuntu 16.04 (xenial):
sudo apt-cache policy docker-engine
You should see output like the follow:
Output of apt-cache policy docker-engine
docker-engine
Step 5: Finally, Install Docker
sudo apt-get install docker-engine=1.13.0-0~ubuntu-xenial
Step 6: Docker should now be installed, the daemon started, and the process enabled to start on boot. Check that it's running
sudo systemctl status docker
Setting up the Peer Jenkins server
Step 1 : Pulling the latest jenkins image from docker hub
sudo docker pull jenkins sudo docker images
Step 2 : create a jenkins.sh file under /data directory
sudo vi jenkins.sh
add below startup script in Jenkins.sh file for running the Jenkins in a container
#!/bin/bash export DROOT=/data export DOMAIN=your.domain.name docker run --detach --name jenkins --restart=always --hostname jenkins.$DOMAIN --volume $DROOT/jenkins:/var/jenkins_home --volume /var/run/docker.sock:/var/run/docker.sock --publish 80:8080 jenkins/jenkins
save the changes and run the script using below command
./jenkins.sh (or) sudo sh jenkins.sh
Step 3 : Pulling the latest jenkins image from docker hub
sudo docker ps
if the Jenkins container is restarting again and again then check the logs using below command
sudo docker logs --tail 50 –follow --timestamps Jenkins
If the logs are showing like below Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied Can not write to /var/jenkins_home/copy_reference_file.log.
The volume directory /data/jenkins need to be separated with the admin ownership to keep the Jenkins home
sudo chown 1000 /data/Jenkins
Then run the command: (Now the container is up and running)
sudo docker ps -a
Executing into Jenkins container
sudo docker exec -it jenkins /bin/bash
Inside the Jenkins container, go to /var/Jenkins_home/secrets/ directory. Copy the initial admin password like this
cat /var/Jenkins_home/secrets/initialAdminPassword