linux

如何在Linux用Jenkins自动化

小樊
58
2025-09-24 23:43:06
栏目: 智能运维

一、前置准备:安装Java环境
Jenkins是基于Java的应用程序,需先安装JDK(推荐OpenJDK 8/11)。以CentOS为例,执行以下命令:

sudo yum update -y
sudo yum install -y java-11-openjdk-devel  # Ubuntu/Debian用sudo apt install -y openjdk-11-jdk
java -version  # 验证安装(需显示Java版本信息)

配置Java环境变量(若未自动配置):

vim /etc/profile

添加以下内容(根据实际JDK路径调整):

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 替换为实际路径
export PATH=$JAVA_HOME/bin:$PATH

保存后使配置生效:

source /etc/profile

二、安装Jenkins

1. 添加Jenkins官方仓库

以CentOS为例,执行以下命令添加Jenkins仓库:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Ubuntu/Debian用户需先导入GPG密钥并添加仓库:

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

2. 安装并启动Jenkins

使用包管理器安装Jenkins(CentOS用yum,Ubuntu用apt):

sudo yum install -y jenkins  # CentOS
# 或 sudo apt update && sudo apt install -y jenkins  # Ubuntu/Debian

启动Jenkins服务并设置开机自启:

sudo systemctl start jenkins
sudo systemctl enable jenkins

验证Jenkins服务状态:

sudo systemctl status jenkins  # 应显示“active (running)”

三、配置Jenkins

1. 初始访问与设置

打开浏览器,访问http://<服务器IP>:8080(若为本地测试,用localhost:8080)。首次访问需输入管理员密码,从以下路径获取:

cat /var/lib/jenkins/secrets/initialAdminPassword

输入密码后,按照提示完成插件安装(推荐选择“安装推荐插件”)和管理员账户创建。

2. 安装必要插件

进入Manage Jenkins > Manage Plugins,切换至“Available”标签,搜索并安装以下核心插件:

3. 配置全局工具

进入Manage Jenkins > Global Tool Configuration,配置以下工具路径(若未自动检测):

四、创建自动化任务

1. 新建任务

进入Jenkins主页,点击New Item,输入任务名称(如my-app-build),选择任务类型:

2. 配置Freestyle任务(以Java项目为例)

源码管理

选择Git,输入代码仓库URL(如https://github.com/username/repo.git)和分支(如main)。若仓库需要认证,点击“Add”添加Credentials(如SSH密钥或账号密码)。

构建触发器

配置自动触发构建的方式:

构建步骤

添加构建步骤(根据项目需求选择):

构建后操作

配置构建成功后的操作:

五、高级配置:Pipeline流水线
若需更灵活的自动化流程(如多阶段构建、条件判断),建议使用Pipeline。

1. 创建Pipeline任务

新建任务时选择Pipeline类型,配置任务名称后,可选择“Pipeline script”(直接编写脚本)或“Pipeline script from SCM”(从代码仓库读取Jenkinsfile)。

2. 编写Jenkinsfile示例

在项目根目录创建Jenkinsfile(以Declarative Pipeline为例),定义构建、测试、部署流程:

pipeline {
    agent any  // 使用任意可用节点
    tools {
        maven 'maven-3.8.6'  // 引用全局工具配置中的Maven
        jdk 'jdk-11'         // 引用全局工具配置中的JDK
    }
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/username/repo.git'  // 拉取代码
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean package'  // 编译打包
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'  // 运行测试
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'  // 发布测试报告
                }
            }
        }
        stage('Deploy') {
            steps {
                sh 'scp target/*.jar user@server:/opt/app/'  // 部署到服务器(需配置SSH免密)
                sh 'ssh user@server "systemctl restart my-app.service"'  # 重启服务
            }
        }
    }
    post {
        success {
            emailext body: 'Build succeeded!', subject: 'Jenkins Build Success', to: 'dev-team@example.com'  // 发送成功通知
        }
        failure {
            emailext body: 'Build failed!', subject: 'Jenkins Build Failure', to: 'dev-team@example.com'  // 发送失败通知
        }
    }
}

保存后点击“Build Now”,Jenkins将按照流水线步骤自动执行。

六、常见问题排查

0
看了该问题的人还看了