温馨提示×

怎样自动化Debian Jenkins部署

小樊
36
2026-09-14 05:09:08
栏目: 智能运维

下面给你一套在 Debian 上自动化 Jenkins 部署的常用方案,从“最基础”到“生产级”逐步升级,你可以按需求选用。


一、最基础:Shell 脚本自动化(适合单机)

1. 自动安装 Jenkins(Debian)

#!/bin/bash
set -e

# 安装依赖
sudo apt update
sudo apt install -y curl gnupg openjdk-17-jdk

# 添加 Jenkins 仓库
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

# 安装 Jenkins
sudo apt update
sudo apt install -y jenkins

# 启动并设置开机自启
sudo systemctl enable --now jenkins

首次访问:

http://<server-ip>:8080

获取初始密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

二、使用 Ansible 自动化(推荐)

1. 目录结构

jenkins-ansible/
├── inventory.ini
├── playbook.yml
└── roles/

2. inventory.ini

[jenkins]
192.168.1.10 ansible_user=root

3. playbook.yml

- hosts: jenkins
  become: true
  tasks:
    - name: Install Java
      apt:
        name: openjdk-17-jdk
        state: present
        update_cache: yes

    - name: Add Jenkins key
      apt_key:
        url: https://pkg.jenkins.io/debian/jenkins.io.key
        keyring: /usr/share/keyrings/jenkins-keyring.asc

    - name: Add Jenkins repo
      apt_repository:
        repo: "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/"
        filename: jenkins

    - name: Install Jenkins
      apt:
        name: jenkins
        state: present

    - name: Start Jenkins
      systemd:
        name: jenkins
        enabled: yes
        state: started

运行:

ansible-playbook -i inventory.ini playbook.yml

三、Docker 方式(最干净、最易迁移)

1. docker-compose.yml

version: "3"
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_home:/var/jenkins_home

volumes:
  jenkins_home:

启动:

docker compose up -d

四、云原生 / 生产级:Kubernetes(Helm)

helm repo add jenkins https://charts.jenkins.io
helm repo update

helm install jenkins jenkins/jenkins \
  --namespace jenkins \
  --create-namespace

适合:

  • 多节点
  • 高可用
  • CI/CD 平台化

五、Jenkins 自身自动化(Job as Code)

1. 使用 Job DSL

job('demo-job') {
    scm {
        git('https://github.com/example/repo.git')
    }
    steps {
        shell('make build')
    }
}

2. 使用 JCasC(推荐)

jenkins:
  securityRealm:
    local:
      users:
        - id: admin
          password: admin

六、推荐组合(实战)

场景 方案
本地测试 Docker
单台服务器 Ansible
企业部署 Kubernetes + JCasC
快速验证 Shell 脚本

如果你愿意,我可以:

  • 帮你写 完整 Ansible Role
  • 给你 JCasC 完整配置
  • 设计 Jenkins + GitLab / GitHub 自动流水线

你现在是 测试环境还是生产环境

0