当前位置:首页 > Centos > 正文

CentOS部署流水线实战指南(手把手教你搭建CI/CD自动化部署环境)

在现代软件开发中,CentOS部署流水线已成为提升开发效率、保障发布质量的关键环节。无论你是刚接触DevOps的小白,还是希望优化现有流程的开发者,本文将带你从零开始,在CentOS系统上搭建一套完整的CI/CD(持续集成/持续部署)流水线。

CentOS部署流水线实战指南(手把手教你搭建CI/CD自动化部署环境) CentOS部署流水线 CI/CD流水线 CentOS自动化部署 Jenkins在CentOS 第1张

一、准备工作:环境与工具

我们将在一台干净的 CentOS 7 或 CentOS Stream 8 服务器上进行操作。确保你拥有 root 权限或 sudo 权限。

所需工具:

  • Jenkins(用于构建和触发流水线)
  • Git(代码版本管理)
  • Docker(可选,用于容器化部署)
  • SSH(用于远程部署)

二、安装Jenkins

Jenkins 是最流行的开源CI/CD工具之一,非常适合在 CentOS自动化部署 场景中使用。

1. 安装Java(Jenkins依赖):

sudo yum install -y java-11-openjdk-develjava -version  # 验证安装

2. 添加Jenkins官方仓库并安装:

sudo wget -O /etc/yum.repos.d/jenkins.repo \    https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keysudo yum install -y jenkins

3. 启动Jenkins服务:

sudo systemctl start jenkinssudo systemctl enable jenkins

4. 打开防火墙端口(默认8080):

sudo firewall-cmd --permanent --add-port=8080/tcpsudo firewall-cmd --reload

现在你可以通过浏览器访问 http://你的服务器IP:8080,完成Jenkins初始化设置。

三、配置第一个部署流水线

假设你有一个简单的Web应用,托管在GitHub上。我们将创建一个流水线,当代码更新时自动拉取、构建并部署到本地目录。

1. 在Jenkins中新建“流水线”任务(Pipeline)。

2. 在“流水线”配置区域选择“Pipeline script from SCM”,填写你的Git仓库地址。

3. 编写Jenkinsfile(放在项目根目录):

pipeline {    agent any    stages {        stage('Clone Code') {            steps {                git 'https://github.com/yourname/your-repo.git'            }        }        stage('Build') {            steps {                sh 'echo "Building application..."'                // 这里可以替换为 npm build、mvn package 等命令            }        }        stage('Deploy') {            steps {                sh '''                    mkdir -p /var/www/myapp                    cp -r ./* /var/www/myapp/                    echo "Deployment completed!"                '''            }        }    }}

保存后点击“立即构建”,即可看到整个 CI/CD流水线 自动运行!

四、进阶:使用SSH远程部署

实际生产中,你可能需要将应用部署到另一台服务器。这时可以使用Jenkins的“Publish Over SSH”插件。

1. 在Jenkins插件管理中安装“Publish Over SSH”。

2. 在“系统设置”中配置目标服务器的SSH信息(主机名、用户名、密码或私钥)。

3. 修改Jenkinsfile,在Deploy阶段使用sshPublisher:

stage('Deploy to Production') {    steps {        sshPublisher(            publishers: [                sshPublisherDesc(                    configName: "prod-server",                    transfers: [                        sshTransfer(                            sourceFiles: "dist/**",                            removePrefix: "dist",                            remoteDirectory: "/var/www/html"                        )                    ]                )            ]        )    }}

五、总结

通过本教程,你已经成功在CentOS上搭建了一套基础但功能完整的部署流水线。无论是小型项目还是企业级应用,这套基于 Jenkins在CentOS 的方案都能为你节省大量手动操作时间,并显著提升发布可靠性。

建议后续学习:集成单元测试、使用Docker容器化部署、结合Ansible实现更复杂的配置管理等。

掌握 CentOS部署流水线,是迈向高效DevOps的第一步!