腾讯云轻量服务器jenkins搭建?

在腾讯云轻量应用服务器(Lighthouse)上搭建 Jenkins 是一个常见的需求,主要用于自动化构建和部署。由于轻量服务器通常使用 Ubuntu 或 CentOS 系统,且资源相对有限,我们需要选择一种既稳定又节省资源的部署方式。

以下是基于 Docker 方式的推荐方案,这种方式隔离性好、升级方便,且不会污染宿主机的环境。如果你更倾向于直接安装 Java,文末也提供了简要说明。

前置准备

  1. 登录腾讯云控制台:确保你的轻量应用服务器已经运行,并获取了公网 IP。
  2. 配置安全组:这是最关键的一步。Jenkins 默认使用 8080 端口,Docker 映射后可能也是 8080
    • 进入轻量服务器控制台 -> 网络 -> 安全组
    • 添加入方向规则:协议类型选 TCP,端口范围填 8080(或者你自定义的其他端口),授权对象设为 0.0.0.0/0(允许所有 IP)。
  3. SSH 连接服务器:使用终端工具(如 Xshell, Putty, 或 Mac/Linux 自带 Terminal)通过 SSH 登录到服务器。

方法一:使用 Docker 部署(推荐)

这种方法最干净,数据持久化在宿主机目录,便于备份。

1. 安装 Docker 和 Docker Compose

如果你的服务器是 Ubuntu

# 更新软件包
sudo apt-get update

# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose (如果版本较老,新版 Docker 已集成 compose 插件)
sudo apt-get install docker-compose-plugin

如果你的服务器是 CentOS

# 安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

2. 创建 Jenkins 部署目录

为了保持整洁,我们在服务器上创建一个专门存放数据的目录:

mkdir -p /opt/jenkins/data
cd /opt/jenkins

3. 编写 docker-compose.yml

在该目录下创建配置文件:

nano docker-compose.yml

粘贴以下内容(根据需求调整端口或镜像版本):

version: '3'
services:
  jenkins:
    image: jenkins/jenkins:lts-jdk17 # 推荐使用 LTS 长期支持版,内置 JDK 17
    container_name: jenkins
    restart: always
    ports:
      - "8080:8080"   # 宿主机端口 : 容器内部端口
      - "50000:50000" # JNLP 端口,用于 Agent 连接
    volumes:
      - ./data:/var/jenkins_home # 数据持久化挂载
    environment:
      - TZ=Asia/Shanghai        # 时区设置
      - JAVA_OPTS=-Xms512m -Xmx1g # 限制内存,防止 OOM
    privileged: true            # 赋予特权模式,方便后续在 Jenkins 内拉取 Docker 镜像

Ctrl + O 保存,Enter 确认,然后 Ctrl + X 退出。

4. 启动 Jenkins

docker-compose up -d

5. 获取初始管理员密码

Jenkins 首次启动需要时间(约 1-3 分钟),启动后查看初始化密码:

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

复制输出的字符串。

6. 网页访问与初始化

  1. 打开浏览器,访问 http://<你的服务器IP>:8080
  2. 输入刚才获取的密码。
  3. 安装建议:选择 "Install suggested plugins"(安装推荐插件)。
  4. 等待插件下载完成,设置管理员账号(建议设置一个强密码的用户名和密码)。
  5. 完成向导,进入 Jenkins 主界面。

方法二:直接安装(不推荐,除非资源极度受限)

如果你的服务器没有安装 Docker 且不想安装,可以直接安装 Java 和 Jenkins。

  1. 安装 OpenJDK 17

    # Ubuntu
    sudo apt install openjdk-17-jdk
    
    # CentOS
    sudo yum install java-17-openjdk-devel
  2. 添加 Jenkins 源并安装
    # Ubuntu
    curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee 
    /usr/share/keyrings/jenkins-keyring.asc > /dev/null
    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
  3. 启动服务
    sudo systemctl start jenkins
    sudo systemctl enable jenkins
  4. 获取密码cat /var/lib/jenkins/secrets/initialAdminPassword

常见问题与优化建议

  1. 内存不足 (OOM)
    轻量服务器通常只有 1GB 或 2GB 内存。Jenkins 本身比较吃内存。

    • 解决:在 docker-compose.yml 中调整 JAVA_OPTS,例如 -Xms256m -Xmx512m,或者给服务器增加 Swap 交换分区。
  2. 无法拉取 Docker 镜像
    如果在 Jenkins 内部构建时需要拉取镜像,可能会因为网络问题失败。

    • 解决:在 Jenkins 的“系统管理” -> “全局工具配置”中配置 Docker Hub 镜像提速地址,或者在宿主机层面配置国内镜像提速器。
  3. 权限问题
    如果 Jenkins 构建任务涉及操作宿主机文件,记得检查 docker-compose.yml 中的 privileged: true 是否开启,或者将宿主机的 /var/run/docker.sock 挂载进去(注意安全风险)。

  4. 公网访问安全
    虽然为了方便测试我们开放了 8080 端口,但在生产环境中,建议:

    • 修改默认端口(如改为 8081)。
    • 配合 Nginx 反向X_X并配置 HTTPS。
    • 仅对特定 IP 段开放安全组规则。

现在你可以尝试访问 http://<服务器IP>:8080 开始你的 CI/CD 之旅了。如果在初始化过程中遇到具体报错,欢迎随时告诉我!

未经允许不得转载:云计算 » 腾讯云轻量服务器jenkins搭建?