温馨提示×

Jenkins与Linux系统集成方法

小樊
48
2025-11-30 10:33:51
栏目: 智能运维

Jenkins与Linux系统集成方法

一 环境准备与安装

  • 安装 Java:Jenkins 需要 Java 8 或 11。在 Ubuntu/Debian 执行:sudo apt update && sudo apt install openjdk-11-jdk;在 CentOS/RHEL 执行:sudo yum install java-11-openjdk-devel,完成后用 java -version 验证。
  • 安装 Jenkins:
    • Debian/Ubuntu 添加仓库并安装:
      wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
      sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
      sudo apt update && sudo apt install jenkins
      
    • CentOS/RHEL 添加仓库并安装:
      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
      sudo yum install jenkins
      
  • 启动与开机自启:sudo systemctl start jenkins && sudo systemctl enable jenkins,用 sudo systemctl status jenkins 检查运行状态。
  • 防火墙放行:
    • Ubuntu/Debian:sudo ufw allow 8080
    • CentOS/RHEL:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 访问初始化页面:打开浏览器访问 http://<服务器IP>:8080,按提示完成解锁与插件安装。

二 与Linux工具链集成

  • 源码管理:安装 Git 并在 Jenkins 全局工具配置中指定 Git 可执行路径;在任务中配置 Git 仓库 URL 与分支。
  • 构建工具:安装 Maven 并在 Jenkins 的 Global Tool Configuration 配置 MAVEN_HOME 或使用自动安装;在构建步骤执行 mvn clean package
  • JDK 管理:在 Jenkins 全局工具配置中指定 JDK 8/11 安装路径(或使用自动安装),确保与项目兼容。
  • 远程部署与执行:安装 Publish Over SSH 插件,配置目标 Linux 主机SSH 凭据与目录;在构建后步骤通过 SSH 执行远程脚本、拷贝构件与重启服务。

三 与Linux系统服务及目录集成

  • 服务管理:Jenkins 作为系统服务运行,支持 sudo systemctl start|stop|restart jenkins,便于与系统运维流程对接。
  • 目录与端口:主要目录包括 /usr/lib/jenkins/(安装目录)、/var/lib/jenkins/(含 secrets/initialAdminPassword 初始解锁文件)、/etc/sysconfig/jenkins(配置文件,含 JENKINS_PORT=8080JENKINS_HOMEJENKINS_USER=jenkins 等关键项);如需自定义端口或主目录,可在此处修改并重启服务。
  • 运行方式:除系统服务外,也可直接以 java -jar jenkins.war --httpPort=8080 方式运行,便于快速部署与排障。

四 安全与网络集成

  • 认证与凭据:使用 SSH Credentials 管理私钥,避免明文密码;为 Git远程主机 分别配置凭据,并在任务与插件中引用。
  • 触发与通知:通过 Webhook 实现代码推送触发构建;结合邮件或即时通讯插件进行构建结果通知。
  • 防火墙与访问控制:仅开放必要端口(如 8080),限制来源 IP,遵循最小权限原则。

五 实战示例 从代码到远程部署的流水线

  • 目标:在 Jenkins 拉取 Git 代码,使用 Maven 构建,打包为 JAR,通过 SSH 复制到目标 Linux 主机并重启应用。
  • 步骤:
    1. 安装插件:Git pluginMaven Integration pluginPublish Over SSH
    2. 全局工具配置:配置 JDK 11Maven(指定 settings.xml 或自动安装)、Git
    3. 系统配置:在 Publish Over SSH 中添加目标主机(Host、Port、Credentials、Remote Directory)。
    4. 创建任务(Pipeline):
      pipeline {
        agent any
        tools {
          maven 'Maven-3'   // 与全局工具配置中的名称一致
          jdk   'JDK-11'
        }
        stages {
          stage('Checkout') {
            steps { git 'https://github.com/example/project.git' }
          }
          stage('Build') {
            steps { sh 'mvn clean package -DskipTests' }
          }
          stage('Deploy') {
            steps {
              sshPublisher(
                publishers: [
                  sshPublisherDesc(
                    configName: 'prod-server',
                    transfers: [
                      sshTransfer(
                        sourceFiles: 'target/app.jar',
                        removePrefix: 'target',
                        remoteDirectory: '/opt/app'
                      )
                    ],
                    execCommand: '''
                      cd /opt/app
                      nohup java -jar app.jar > app.log 2>&1 &
                    '''
                  )
                ]
              )
            }
          }
        }
        post { always { cleanWs() } }
      }
      
    5. 触发与验证:提交代码触发构建,查看控制台输出与远程主机进程/日志,确认发布成功。

0