===== Install Jenkins on Debian 10 =====
==== Oracle JDK option ====
Download JDK from Oracle, you will need a Oracle account.
apt-get -y install gnupg git
tar -C /opt/ -zxvf $HOME/jdk-8u261-linux-x64.tar.gz
#tar -C /opt/ -zxvf $HOME/jdk-8u261-linux-x64.tar.gz
echo 'export JAVA_HOME=/opt/jdk1.8.0_261'>> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin'>> /etc/profile
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/'>> /etc/apt/sources.list.d/jenkins.list
apt-get update
apt-get -y install jenkins
You will need to fix the error from daemon start, so modifiy /etc/init.d/jenkins and change the lines as follows:
PATH=/bin:/usr/bin:/sbin:/usr/sbin
to
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/jdk1.8.0_261/bin
Restart Jenkins:
systemctl restart jenkins
==== OpenJDK option ====
apt-get -y install gnupg git openjdk-11-jdk apt-transport-https
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/'>> /etc/apt/sources.list.d/jenkins.list
apt-get update
apt-get -y install jenkins
==== nginx configuration ====
If you want to use port https or http, a good recommendation is create a nginx proxy to redirect traffic to standard port.
apt-get install nginx
cat <> /etc/nginx/sites-available/jenkins.conf
upstream jenkins {
keepalive 32; # keepalive connections
server 127.0.0.1:8080; # jenkins ip and port
}
# Required for Jenkins websocket agents
map \$http_upgrade \$connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80 default_server; # Listen on port 80 for IPv4 requests
server_name _;
# this is the jenkins web root directory
# (mentioned in the /etc/default/jenkins file)
root /var/cache/jenkins/war/;
access_log /var/log/nginx/jenkins/access.log;
error_log /var/log/nginx/jenkins/error.log;
# pass through headers from Jenkins that Nginx considers invalid
ignore_invalid_headers off;
location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" {
#rewrite all static files into requests to the root
#E.g /static/12345678/css/something.css will become /css/something.css
rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /\$1 last;
}
location /userContent {
# have nginx handle all the static requests to userContent folder
#note : This is the \$JENKINS_HOME dir
root /var/lib/jenkins/;
if (!-f \$request_filename){
#this file does not exist, might be a directory or a /**view** url
rewrite (.*) /\$1 last;
break;
}
sendfile on;
}
location / {
sendfile off;
proxy_pass http://jenkins;
proxy_redirect default;
proxy_http_version 1.1;
# Required for Jenkins websocket agents
proxy_set_header Connection \$connection_upgrade;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_max_temp_file_size 0;
#this is the maximum upload size
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffering off;
proxy_request_buffering off; # Required for HTTP CLI commands
proxy_set_header Connection ""; # Clear for keepalive
}
}
EOF
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/
mkdir /var/log/nginx/jenkins
chown www-data.www-data /var/log/nginx/jenkins/
systemctl restart nginx
==== Initial password ====
cat /var/lib/jenkins/secrets/initialAdminPassword