Ubuntu 24.04版本安装部署CICD持续集成/交付工具指南

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】登录后记得修改密码