第二十四节:Linux 自动化部署与持续集成(CICD)实践

第二十四节:Linux 自动化部署与持续集成(CI/CD)实践

在现代运维和开发实践中,CI/CD(持续集成/持续部署)是提升软件交付效率的关键方式。本节将围绕 Linux 环境下的自动化部署流程,从工具选择、部署流程设计到实战演练,全面介绍 CI/CD 的落地实践方法。


一、什么是 CI/CD?

✅ 持续集成(CI: Continuous Integration)

持续地将代码集成到主干,并自动化地进行构建、测试、代码检查等流程。

✅ 持续交付(CD: Continuous Delivery)

代码通过自动化测试后可以随时部署上线,但部署由人工触发。

✅ 持续部署(CD: Continuous Deployment)

构建、测试、部署全流程自动化完成,每一次代码提交都自动上线。


二、Linux 自动化部署的核心工具

工具名称用途
Git版本管理
Jenkins流水线构建、调度
GitLab CI与 GitLab 集成的 CI/CD 工具
Ansible无代理自动化部署、配置管理
Docker容器化部署,快速发布与回滚
systemd管理进程/守护服务
Nginx蓝绿部署、负载均衡

三、CI/CD 工作流程概览

开发者 Push 代码 → GitLab/GitHub → CI 工具触发 Pipeline →
→ 构建镜像/打包 → 单元测试 → 安全/语法检查 →
→ 部署至测试环境 → 自动化测试 →
→ 手动审批或自动部署至生产

四、Jenkins 在 Linux 中的部署与使用

1️⃣ 安装 Jenkins

yum install java-11-openjdk -y
wget -O /etc/yum.repos.d/jenkins.repo \
  https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins -y
systemctl enable jenkins && systemctl start jenkins

2️⃣ 配置 Jenkins

  • 浏览器访问:http://your_ip:8080;
  • 输入初始密码 /var/lib/jenkins/secrets/initialAdminPassword
  • 安装推荐插件;
  • 创建管理员账户。

3️⃣ 创建一个 Job 实现部署

Pipeline 示例(Jenkinsfile):

pipeline {
  agent any
  stages {
    stage('Clone') {
      steps {
        git 'https://github.com/your-org/your-repo.git'
      }
    }
    stage('Build') {
      steps {
        sh './build.sh'
      }
    }
    stage('Test') {
      steps {
        sh './test.sh'
      }
    }
    stage('Deploy') {
      steps {
        sh 'ansible-playbook deploy.yml'
      }
    }
  }
}

五、基于 Ansible 的自动化部署实践

示例:部署一个 Nginx 服务

目录结构:

text复制编辑project/
├── inventory
├── deploy.yml
└── roles/
    └── nginx/
        ├── tasks/
        │   └── main.yml
        └── templates/
            └── nginx.conf.j2

tasks/main.yml 示例:

- name: 安装 nginx
  yum: name=nginx state=present

- name: 部署配置文件
  template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf

- name: 启动服务
  service: name=nginx state=started enabled=yes

执行命令:

ansible-playbook -i inventory deploy.yml

六、Docker + CI/CD 实战简要流程

1️⃣ 创建 Dockerfile

dockerfile复制编辑FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

2️⃣ 编写自动化构建脚本

docker build -t myapp:latest .
docker stop myapp || true
docker rm myapp || true
docker run -d -p 80:5000 --name myapp myapp:latest

七、蓝绿部署/灰度发布策略(简要)

  • 蓝绿部署:两套环境,蓝=当前稳定版,绿=新版本;
    • 切换 nginx 配置指向不同后端,实现零中断上线;
  • 灰度发布:先让部分用户使用新版本,根据反馈决定是否全量发布。

八、CI/CD 实战建议

  • 所有部署操作都脚本化,可重现;
  • 自动化测试必须覆盖关键路径;
  • 保持流水线简洁易读;
  • 配置权限隔离,避免滥权操作;
  • 日志与版本统一存档,方便回溯;
  • 结合钉钉/邮件实现告警通知。

九、小结

模块关键技术
源码管理Git
构建工具Shell/Python/Maven
流水线工具Jenkins/GitLab CI
部署工具Ansible/Docker
服务管理systemd/Supervisor
回滚与监控容器/ELK/Prometheus

CI/CD 并不只是“工具整合”,更是 DevOps 流程思维的体现:追求小步快跑、可观测性强、部署可控、交付更稳。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值