ubuntu上安装jenkins

参考Linux (jenkins.io)

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 jenkins

设置nginx反向代理通过/jenkins访问

# Required for Jenkins websocket agents
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}


server {
	...
    
     location /jenkins {
                proxy_pass http://localhost:8080;

                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; # Required for HTTP CLI commands
        }

}

需要修改jenkins的配置,指定prefix为jenkins,方法如下

systemctl edit jenkins
# 在其中添加
[Service]
Environment="JENKINS_PREFIX=/jenkins"

然后执行systemctl daemon-reload

然后通过http://youdomain/jenkins就能访问jenkins了,不过在jenkins的欢迎界面我等了很久都没有任何变化,直觉告诉我我又踩坑了。我执行systemctl status jenkins,结果是

● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/jenkins.service.d
             └─override.conf
     Active: activating (start) since Thu 2024-08-22 13:50:53 CST; 2min 37s ago
   Main PID: 181489 (java)
      Tasks: 51 (limit: 9403)
     Memory: 195.7M
        CPU: 12.107s
     CGroup: /system.slice/jenkins.service
             └─181489 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --prefix=/jenkins

一直是activating状态。在jenkins的文档中不经意看到了配置timeout的方法,我猜测大概是jenkins启动过程有点长,而默认默认启动时间15s比较短,导致不断重启。按照刚才的方法systemctl edit jenkins,索性给大点

TimeoutStartSec=900

然后systemctl daemon-reload。经过漫长的等待终于成功进入下一个界面,输入password继续往下。我怀疑之所以启动时间长,有可能是jenkins发送了请求,而这可怜的网络导致了返回巨慢(纯猜测)。

来个截图


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注