OCI の Ubuntu 22.04 に Jenkins を構築してみた

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

タグ: