温馨提示×

ubuntu jenkins如何自动化

小樊
39
2026-09-16 10:41:04
栏目: 智能运维

在 Ubuntu 上实现 Jenkins 自动化,通常包含以下几个层面:

  1. Jenkins 本身的自动化安装与启动
  2. Jenkins Job / Pipeline 的自动化构建
  3. 与 Git、Docker、Shell、CI/CD 流程集成
  4. 系统级自动化(开机自启、定时任务)

下面按实战步骤说明。


一、Ubuntu 上自动化安装 Jenkins

1. 使用脚本自动安装

#!/bin/bash
sudo apt update
sudo apt install -y openjdk-17-jdk

curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.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 binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt update
sudo apt install -y jenkins

2. 设置开机自启

sudo systemctl enable jenkins
sudo systemctl start jenkins

二、Jenkins 自动化构建(核心)

方式一:Freestyle Job(简单)

  • 源码管理:Git
  • 构建触发:
    • Poll SCM(定时拉取)
    • GitHub Webhook
  • 构建步骤:
./build.sh

方式二:Pipeline(推荐,真正自动化)

示例 Jenkinsfile

pipeline {
    agent any
    stages {
        stage('Clone') {
            steps {
                git 'https://github.com/user/repo.git'
            }
        }
        stage('Build') {
            steps {
                sh 'make build'
            }
        }
        stage('Test') {
            steps {
                sh 'make test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'bash deploy.sh'
            }
        }
    }
}

在 Jenkins 中:

  • 新建 Pipeline Job
  • 选择 Pipeline script from SCM

三、Git 提交自动触发构建

1. Jenkins 端

  • 安装插件:GitHub Integration
  • Job 配置:
    • Build Triggers → GitHub hook trigger

2. GitHub / GitLab

  • Webhook URL:
http://<jenkins-ip>:8080/github-webhook/

四、Ubuntu 系统级自动化

1. 定时构建(Cron)

Jenkins 内置:

H 2 * * *   # 每天凌晨2点

2. Shell 脚本自动备份 Jenkins

#!/bin/bash
tar -czf /backup/jenkins-$(date +%F).tar.gz /var/lib/jenkins

加入 crontab:

0 3 * * * /opt/backup_jenkins.sh

五、与 Docker 自动化(常见)

Jenkins 调用 Docker 构建

stage('Docker Build') {
    steps {
        sh 'docker build -t myapp .'
    }
}

或 Jenkins 本身跑在 Docker:

docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins

六、常用自动化插件

  • Pipeline
  • Git
  • Docker
  • Credentials Binding
  • Blue Ocean(可视化)
  • Ansible(部署自动化)

七、典型自动化流程示例

代码提交
  ↓
GitHub Webhook
  ↓
Jenkins 自动拉代码
  ↓
自动构建 + 测试
  ↓
自动部署(SSH / Docker / K8s)

如果你愿意,可以告诉我:

  • 是 Java / Node / Python / Go 项目?
  • 是否使用 Docker / K8s?
  • 是 内网 Jenkins 还是 公网?

我可以直接给你一套 可复制的 Jenkinsfile + 脚本。

0 踩