CI/CD の検証用に Jenkins が必要になり、OCI の Ubuntu 22.04 に構築してみました。Java をインストールをしてから、Jenkins を入れて、Nginx でリバースプロキシを設定する流れとなります。
Java をインストール
sudo apt install -y fontconfig openjdk-17-jre
java -version
Jenkins をインストール
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install -y jenkins
jenkins --version
Jenkins を初期設定
デフォルトのポート番号 8080 から変更して 8081 に変更し、アクセスする URL に /jenkins
パスを追加しました。
sudo mkdir /etc/systemd/system/jenkins.service.d/
cat <<EOF | sudo tee /etc/systemd/system/jenkins.service.d/override.conf
[Service]
Environment="JENKINS_PORT=8081"
Environment="JENKINS_PREFIX=/jenkins"
EOF
cat /etc/systemd/system/jenkins.service.d/override.conf
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Nginx で Jenkins へのリバースプロキシ設定を追加
sudo vi /etc/nginx/sites-enabled/default
upstream jenkins {
keepalive 32; # keepalive connections
server 127.0.0.1:8081; # jenkins ip and port
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
(中略)
location /jenkins/ {
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 $http_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_request_buffering off;
}
(中略)
}
Nginx の設定を再読み込み
sudo nginx -t
sudo nginx -s reload
参考
https://www.jenkins.io/doc/book/installing/linux
タグ: Jenkins