温馨提示×

怎样远程部署ubuntu jenkins

小樊
47
2026-10-27 21:42:42
栏目: 智能运维

下面按常见场景给你一套远程部署 Ubuntu + Jenkins的完整思路与操作步骤,从“服务器准备”到“远程访问/自动化部署”都覆盖。


一、准备工作(远程服务器)

你需要一台 远程 Ubuntu 服务器(物理机 / 云服务器均可):

  • Ubuntu 20.04 / 22.04(推荐)
  • 有公网 IP 或内网可达
  • 已开启 SSH(默认 22 端口)

1. 登录远程服务器

ssh user@your_server_ip

2. 更新系统

sudo apt update && sudo apt upgrade -y

二、安装 Java(Jenkins 依赖)

Jenkins 需要 Java 11 或 17

sudo apt install openjdk-17-jdk -y
java -version

三、远程安装 Jenkins(Ubuntu)

方式一:官方仓库安装(推荐)

# 安装依赖
sudo apt install -y curl fontconfig

# 添加 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

# 安装
sudo apt update
sudo apt install jenkins -y

四、启动并配置 Jenkins

sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins

获取初始管理员密码

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

五、远程访问 Jenkins

1. 直接 IP 访问(测试用)

http://服务器IP:8080

2. 云服务器安全组

确保放行:

  • 8080(Jenkins)
  • 22(SSH)

六、生产环境推荐:Nginx + 域名 + HTTPS

安装 Nginx

sudo apt install nginx -y

配置反向代理

sudo nano /etc/nginx/sites-available/jenkins
server {
    listen 80;
    server_name jenkins.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

(HTTPS 可用 Let’s Encrypt)


七、Jenkins 远程部署项目(核心)

场景示例:Jenkins 部署到另一台远程服务器

1. 安装插件

  • Publish Over SSH
  • Git
  • Pipeline

2. 配置远程服务器(SSH)

Jenkins → 系统管理 → 系统配置 → Publish over SSH

  • Hostname
  • Username
  • 私钥或密码

3. 创建 Pipeline 示例

pipeline {
    agent any
    stages {
        stage('Pull Code') {
            steps {
                git 'https://github.com/your/repo.git'
            }
        }
        stage('Deploy') {
            steps {
                sshPublisher(
                    publishers: [
                        sshPublisherDesc(
                            configName: 'remote-server',
                            transfers: [
                                sshTransfer(sourceFiles: 'dist/**', remoteDirectory: '/app')
                            ]
                        )
                    ]
                )
            }
        }
    }
}

八、常见问题

Jenkins 无法启动

journalctl -u jenkins -f

端口被占用

修改:

sudo nano /etc/default/jenkins
# HTTP_PORT=8080

远程很慢

  • 使用国内 Jenkins 镜像
  • 使用代理或 CDN

九、总结流程

✅ 远程 Ubuntu
✅ 安装 Java + Jenkins
✅ SSH / Nginx 远程访问
✅ Pipeline 自动化部署


如果你愿意,我可以:

  • 给你 一键安装脚本
  • 按 Docker 方式部署 Jenkins
  • 按 GitLab / GitHub 自动触发 CI/CD

你现在是 学习 / 公司生产 / 云服务器 哪种场景?

0 踩