debian

Debian上Jenkins自动化部署实践

小樊
42
2025-02-28 21:37:12
栏目: 智能运维

在Debian上部署Jenkins并实现自动化部署涉及多个步骤,包括环境搭建、插件安装、流水线配置等。以下是一个详细的实践指南:

环境准备

  1. 硬件与操作系统选择

    • 推荐配置
      • 生产环境:8核CPU / 16GB内存 / 100GB SSD存储(建议多节点部署,分离Master与Agent)
      • 测试环境:4核CPU / 8GB内存 / 50GB SSD存储
    • 操作系统:优先选择Ubuntu 22.04 LTS,CentOS Stream 9也可使用,但需注意FirewallD与SELinux配置。
  2. 安装依赖与Jenkins

    • 安装Java环境
      sudo apt update && sudo apt install -y openjdk-11-jdk
      
    • 通过官方仓库安装Jenkins
      sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io.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 -y jenkins
      
    • 启动Jenkins服务
      sudo systemctl enable jenkins
      sudo systemctl start jenkins
      sudo systemctl status jenkins  # 确认状态为Active
      
    • 防火墙与端口开放
      sudo ufw allow 8080/tcp
      sudo ufw allow 50000/tcp
      sudo ufw reload
      

初始化配置

  1. 解锁Jenkins:访问 http://<服务器IP>:8080,输入初始密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  2. 加速插件安装:更换国内镜像源,进入Manage Jenkins -> Plugin Manager -> Advanced,替换Update Site URL为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,安装必备插件:Pipeline、GitHub Integration、Docker、Kubernetes CLI、Credentials Binding。
  3. 权限安全配置:禁用匿名访问,进入Manage Jenkins -> Security -> Enable security,选择Logged-in users can do anything,创建管理员用户。

构建流水线

  1. 连接代码仓库(以GitHub为例)
    • 生成SSH密钥对:
      ssh-keygen -t rsa -b 4096 -f ~/.ssh/jenkins_github
      cat ~/.ssh/jenkins_github.pub  # 复制公钥到GitHub的Deploy Keys
      
    • 在Jenkins中配置凭据:进入Manage Jenkins -> Credentials -> System -> Global credentials,添加SSH私钥(类型:SSH Username with private key),ID命名为github-ssh。
  2. 创建声明式流水线项目
    • 新建Pipeline任务,任务名:demo-pipeline。
    • 选择Pipeline script from SCM,配置Git仓库地址与凭据。

流水线示例

以下是一个简单的声明式Pipeline示例:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'git@github.com:your-repo.git'
            }
        }
        stage('Build & Test') {
            steps {
                sh './gradlew build'  // 注意脚本权限:chmod +x gradlew
                junit 'build/test-results/**/*.xml'
            }
        }
        stage('Deploy to Production') {
            when {
                branch 'main'
            }
            steps {
                sh 'kubectl apply -f deployment.yaml'  // 根据环境动态切换namespace
            }
        }
    }
}

高可用与灾备

  1. 主从架构搭建:通过Jenkins Agent实现分布式构建(Docker一键部署Agent节点):
    docker run -d --name jenkins-agent \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -e JENKINS_URL=http://master-ip:8080 \
        -e JENKINS_AGENT_NAME=agent
    

通过以上步骤,你可以在Debian上成功搭建并配置Jenkins,实现自动化部署。根据具体需求,你还可以进一步扩展和优化Jenkins的配置和功能。

0
看了该问题的人还看了