温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jenkins自动化服务器如何实现

发布时间:2025-12-24 21:14:46 来源:亿速云 阅读:107 作者:小樊 栏目:系统运维

Jenkins 自动化服务器实现指南

一 架构与准备

  • 核心组件:以 Jenkins 为中心,结合 Java JDKGitMaven/Gradle、构建触发器(如 Poll SCM/Webhook)、以及可选的反向代理(Nginx/Apache)与制品仓库/目标环境(如 Docker/ECS)。
  • 运行方式:支持系统服务方式(Linux 使用 systemd 管理)与 WAR 包直接运行,便于快速启动与迁移。
  • 访问与安全:默认监听 8080 端口;生产建议通过域名与 HTTPS 暴露,前置反向代理并开启防火墙策略。

二 安装与初始化

  • Ubuntu/Debian
    • 安装依赖:sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
    • 添加仓库与安装:
      • wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
      • echo “deb https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list
      • sudo apt update && sudo apt install -y jenkins
    • 启动服务:sudo systemctl start jenkins && sudo systemctl enable jenkins
    • 解锁:查看初始管理员密码 cat /var/lib/jenkins/secrets/initialAdminPassword,随后完成插件安装与账户设置。
  • CentOS/RHEL
    • 安装依赖:sudo yum update -y && sudo yum install -y java-1.8.0-openjdk-devel
    • 添加官方 YUM 源并安装(或直接使用 WAR 包方式)
    • 启动与开机自启:sudo systemctl start jenkins && sudo systemctl enable jenkins
    • 解锁同上,使用 /var/lib/jenkins/secrets/initialAdminPassword 获取初始密码。
  • 通用 WAR 包方式(跨平台)
    • 下载稳定版 WAR:wget https://get.jenkins.io/war-stable/2.346/jenkins.war(示例)
    • 后台运行:nohup java -jar jenkins.war --httpPort=8080 > jenkins.log 2>&1 &
    • 访问控制台:http://localhost:8080,按提示完成初始化。

三 反向代理与域名 HTTPS

  • Apache 反向代理示例(Ubuntu/Debian)
    • 启用模块:sudo a2enmod proxy proxy_http
    • 虚拟主机(/etc/apache2/sites-available/jenkins.conf):
      • <VirtualHost *:80>
        • ServerName your.domain
        • ProxyRequests Off
        • ProxyPreserveHost On
        • AllowEncodedSlashes NoDecode
        • <Proxy http://localhost:8080/*>
          • Order deny,allow
          • Allow from all
        • ProxyPass / http://localhost:8080/ nocanon
        • ProxyPassReverse / http://localhost:8080/
        • ProxyPassReverse / http://your.domain/
    • 启用站点并重启:sudo a2ensite jenkins && sudo systemctl restart apache2 && sudo systemctl restart jenkins
    • 访问域名即可进入 Jenkins。生产建议配置 SSL/TLS(如 Let’s Encrypt)。
  • 防火墙与端口
    • 开放 80/443(Nginx/Apache)与 8080(仅内网/代理可达),如使用 ufw:sudo ufw allow 80,443/tcp。

四 核心配置与流水线

  • 全局工具与插件
    • 进入 Manage Jenkins → Global Tool Configuration,配置 JDKGitMaven 路径(可自动安装或手动指定)。
    • 进入 Manage Jenkins → Manage Plugins,安装常用插件:Git pluginMaven IntegrationPipelineJUnitDocker PipelinePublish Over SSH 等。
  • Freestyle 任务(入门)
    • 新建任务 → 选择 Freestyle project → 源码管理选 Git 并配置凭据 → 构建触发器按需选择 Poll SCMWebhook → 构建步骤执行 Maven 目标或 Shell 脚本 → 构建后操作可发布测试报告、归档产物、发送通知。
  • Pipeline 任务(推荐)
    • 新建任务 → 选择 Pipeline → 在 Pipeline 脚本中定义 stages(Checkout/Build/Test/Deploy),示例:
      • pipeline {
        • agent any
        • stages {
          • stage(‘Checkout’) { steps { git ‘https://your-repo-url’ } }
          • stage(‘Build’) { steps { sh ‘mvn clean package’ } }
          • stage(‘Test’) { steps { sh ‘mvn test’ } }
          • stage(‘Deploy’) { steps { sh ‘scp target/app.jar user@host:/opt/app/’ } }
        • }
        • post { always { junit ‘target/surefire-reports/*.xml’ } }
        • }
    • 将脚本放入 Jenkinsfile 纳入版本控制,实现 Pipeline as Code

五 部署到 ECS 与常见问题

  • 部署到 ECS(示例思路)
    • 资源建议:应用初期可选 2 核 4G/100G SSDECS,安装 Docker,开放 80/443,使用 Nginx/Apache 反向代理应用。
    • Jenkins 侧:安装 Publish Over SSHDocker Pipeline 等插件;生成 SSH Key 并分发公钥到目标 ECS 的 authorized_keys,实现免密部署。
    • 流水线要点:拉取代码 → 构建 Docker 镜像 → 推送镜像或产物 → 通过 SSH 在目标机执行滚动更新(停旧启新、健康检查)。
  • 常见问题与排查
    • 插件/更新站点慢:在 Manage Jenkins → Manage Plugins → Advanced 将更新站点替换为国内镜像(如清华源)以加速。
    • 构建并发与性能:在 Manage Jenkins → Configure System 调整 # of executors,必要时配置 分布式构建节点 提升并行度。
    • 主目录与迁移:通过设置环境变量 JENKINS_HOME 或在 “Configure System” 查看/调整主目录;支持从磁盘重新加载配置,便于迁移与备份。
    • 日志与诊断:使用 系统日志负载统计脚本控制台定位问题;Web 端查看 /var/lib/jenkins/secrets/initialAdminPassword 完成初始化。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI