Ubuntu 24.04版本手动安装部署Jenkins指南
步骤1:更新系统软件包
apt update
apt upgrade
步骤 2: 安装 Java
Jenkins 需要 Java 运行环境,Ubuntu 24.04 中可以安装 OpenJDK 11 或更高版本。我这里安装的是OpenJDK 21.0.9 版本。
apt install fontconfig openjdk-21-jre
检查Java版本是否安装成功:
java -version
# 输出以下信息即安装成功
openjdk version "21.0.9" 2025-10-21
OpenJDK Runtime Environment (build 21.0.9+10-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 21.0.9+10-Ubuntu-124.04, mixed mode, sharing)
步骤 3: 添加 Jenkins 仓库
# 导入 Jenkins 的仓库密钥
wget -O /etc/apt/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key
# 添加 Jenkins 仓库
echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
步骤 4: 安装 Jenkins
apt update
apt -y install jenkins
步骤5:安装nginx或apache2服务,并配置jenkins.conf
我安装的nginx:
# 安装nginx
apt -y install nginx
# 配置jenkins.conf
vim /etc/nginx/sites-available/jenkins.conf
server {
listen 80;
server_name 47.86.108.63;
location / {
proxy_pass http://localhost:8080;
proxy_pass_header Host $host;
proxy_pass_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 检查nginx配置文件
nginx -t # 输出下面内容为配置正确,其他为配置文件有错误
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
步骤6:启动nginx、Jenkins服务
systemctl start nginx jenkins
systemctl enable nginx jenkins
# 检查服务状态
systemctl status nginx jenkins
# 检查端口号——nginx端口为80,Jenkins端口为8080
netstat -tnulp |egrep "80|8080"
步骤7:配置防火墙
若服务器启用防火墙,需开放8080端口:
ufw allow 8080
ufw reload
# 查看防火墙开发8080端口
ufw statu |grep 8080
【注意】云服务器安全组应设置也允许8080进行访问
步骤8:访问 Jenkins Web UI
1)打开浏览器并访问 Jenkins Web UI:http://<你的服务器公网IP>:8080
2)第一次访问时,会要求你输入解锁密钥。你可以通过以下命令获取这个密钥:
cat /var/lib/jenkins/secrets/initialAdminPassword
3)输入密钥后,你将能够进入 Jenkins 的设置页面,按照提示完成初步设置
步骤 9: 安装插件和创建管理员账户
完成初步设置后,Jenkins 会提示安装推荐的插件。安装完成后,可以创建管理员账户,并开始配置 Jenkins 实例。
——————————————————————
Ubuntu 24.04版本使用docker部署GitLab
# 服务器配置建议
最低配置为2C、4G、磁盘50G
步骤1:基础环境准备
# 安装 Nginx & Docker & Docker Compose(若已安装可跳过)
apt update
apt install -y docker.io docker-compose git curl nginx
systemctl enable docker --now
systemctl enable nginx --now
步骤2:创建相关目录
mkdir -p /gitlab/{config,data,logs}
# 目录结构
tree -L 1 /gitlab/
/gitlab/
├── config
├── data
├── docker-compose.yml
└── logs
步骤3:编写docker-compose.yml
services:
gitlab:
image: docker.m.daocloud.io/gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: gitlab.local
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://10.0.0.19'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# ❶ 禁用内置 Nginx
nginx['enable'] = false
# ❷ GitLab Workhorse 配置
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "0.0.0.0:8080"
# ❸ Puma 配置 - 关键修改!
puma['enable'] = true
puma['listen'] = '127.0.0.1' # 只监听本地
puma['port'] = 8081 # 使用不同端口,避免冲突
# ❹ 告诉 Workhorse 连接到正确的 Puma 端口
gitlab_workhorse['auth_backend'] = "http://127.0.0.1:8081"
ports:
- "2222:22"
- "8080:8080" # Workhorse 端口
volumes:
- /gitlab/config:/etc/gitlab
- /gitlab/logs:/var/log/gitlab
- /gitlab/data:/var/opt/gitlab
shm_size: '256m'
步骤4:启动服务
docker-compose up -d
# 检查容器状态及容器监听端口
docker ps|grep gitlab
docker exec -it gitlab gitlab-ctl status # 正确结果应有workhorse、puma、sidekiq、redis、postgresql,没有nginx
docker exec -it gitlab netstat -tnl |grep 8080
tcp 0 0 :::8080 :::* LISTEN
步骤5:配置nginx文件
# 获取gitlab容器的IP
docker exec -it gitlab ip a
# 编写/etc/nginx/conf.d/gitlab.conf
server {
listen 80;
server_name 10.0.0.19;
client_max_body_size 0;
proxy_read_timeout 3600;
location / {
proxy_pass http://172.18.0.2:8080; # 替换为实际的容器 IP
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;
}
}
# 检查语法并重启nginx
nginx -t
systemctl restart nginx
步骤6:访问 & 初始化
浏览器打开:gitlab服务器宿主机IP # 不是容器IP
初始登录用户:root
登录密码:通过 docker exec -it gitlab cat /etc/gitlab/initial_root_password 获取初始密码
修改密码
————————————————————
Ubuntu 24.04版本使用docker部署Jenkins、Nexus、Sonar,并连接Gitlab
# 服务器配置建议
若Jenkins、Nexus、Sonar部署在同一台服务器,最低配置为6+C、12+G、磁盘100+G
步骤1:基础环境准备
# 安装 Docker & Docker Compose(若已安装可跳过)
apt update
apt install -y docker.io docker-compose git curl
systemctl enable docker --now
# 系统参数(Sonar 必须)
cat >> /etc/sysctl.conf << EOF
vm.max_map_count=262144
fs.file-max=6815744
EOF
sysctl -p
# 目录结构规划推荐
mkdir -p /opt/devops/{jenkins,nexus,sonar,nginx}
tree -L 1 /opt/devops/
/devops/
├── docker-compose.yml
├── jenkins
├── nexus
└── sonar
步骤2:编写docker-compose.yml
version: "3.9"
services:
jenkins:
image: jenkins/jenkins:lts-jdk17 # 推荐更换为国内镜像源
container_name: jenkins
user: root
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /opt/devops/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
restart: always
nexus:
image: sonatype/nexus3 # 推荐更换为国内镜像源
container_name: nexus
ports:
- "8081:8081"
volumes:
- /opt/devops/nexus:/nexus-data
restart: always
postgres:
image: postgres:15 # 推荐更换为国内镜像源
container_name: sonar-postgres
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- /opt/devops/sonar/postgres:/var/lib/postgresql/data
restart: always
sonarqube:
image: sonarqube:lts-community # 推荐更换为国内镜像源
container_name: sonarqube
depends_on:
- postgres
ports:
- "9000:9000"
environment:
SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- /opt/devops/sonar/data:/opt/sonarqube/data
- /opt/devops/sonar/extensions:/opt/sonarqube/extensions
- /opt/devops/sonar/logs:/opt/sonarqube/logs
restart: always
步骤3:启动yml文件,构建容器
docker-compose up -d
【注意事项】
1)构建过程中,若从官网拉取镜像超时可以调整为国内镜像源或配置DNS解析加速器,最好是提前将镜像拉取到本地,提高拉取速度
2)避免sonarqube服务启动失败,下启动postgres:
docker-compose up -d postgres
sleep 20
docker-compose up -d
步骤4:服务初始化
# Jenkins服务——CICD
浏览器访问:http://服务器IP:8080
解锁密码:docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
按照提示安装必须插件:Git、Gitlab、Docker Pipeline、SonarQube Scanner、Credentials Binding、Pipeline
# Nexus服务——制品仓库
浏览器访问:http://服务器IP:8081
管理员初始密码:docker exec nexus cat /nexus-data/admin.password
常用仓库:maven-releases、maven-snapshots、docker-hosted、docker-group
# SonarQube服务——代码质量
浏览器访问:http://服务器IP:9000
默认账号密码:admin:admin
【Tip】登录后记得修改密码