jenkins+shell自动化部署怎么实现

发布时间:2022-04-11 13:54:06 作者:iii
来源:亿速云 阅读:224

Jenkins + Shell 自动化部署实现指南

在现代软件开发中,持续集成和持续部署(CI/CD)已经成为提高开发效率、保证代码质量的重要手段。Jenkins 开源的自动化服务器,广泛应用于 CI/CD 流程中。结合 Shell 脚本,Jenkins 可以实现从代码提交到部署的全自动化流程。本文将详细介绍如何使用 Jenkins 和 Shell 脚本实现自动化部署。

1. 环境准备

在开始之前,确保你已经具备以下环境:

2. Jenkins 安装与配置

2.1 安装 Jenkins

如果你还没有安装 Jenkins,可以参考以下步骤:

  1. 安装 Java:Jenkins 是基于 Java 的应用程序,因此需要先安装 Java。

    sudo apt-get update
    sudo apt-get install openjdk-11-jdk
    
  2. 安装 Jenkins

    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update
    sudo apt-get install jenkins
    
  3. 启动 Jenkins

    sudo systemctl start jenkins
    sudo systemctl enable jenkins
    
  4. 访问 Jenkins:打开浏览器,访问 http://<your-server-ip>:8080,按照提示完成初始配置。

2.2 配置 Jenkins

  1. 安装插件:在 Jenkins 中安装必要的插件,如 Git、SSH、Pipeline 等。

    • 进入 Jenkins 管理界面,点击“Manage Jenkins” -> “Manage Plugins”。
    • 在“Available”选项卡中搜索并安装所需插件。
  2. 配置 SSH 密钥:为了让 Jenkins 能够通过 SSH 访问目标服务器,需要配置 SSH 密钥。

    • 在 Jenkins 服务器上生成 SSH 密钥:
      
      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
      
    • 将生成的公钥添加到目标服务器的 ~/.ssh/authorized_keys 文件中。
  3. 配置 Jenkins 凭据:在 Jenkins 中添加 SSH 私钥凭据。

    • 进入 Jenkins 管理界面,点击“Manage Jenkins” -> “Manage Credentials”。
    • 添加一个新的“SSH Username with private key”凭据,将生成的私钥粘贴到相应字段中。

3. 编写 Shell 部署脚本

在目标服务器上编写一个 Shell 脚本,用于自动化部署应用。以下是一个简单的示例脚本:

#!/bin/bash

# 定义变量
APP_NAME="myapp"
APP_DIR="/var/www/$APP_NAME"
BACKUP_DIR="/var/www/backup"
GIT_REPO="https://github.com/your-repo/myapp.git"
BRANCH="main"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份当前应用
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
tar -czf $BACKUP_DIR/$APP_NAME-$TIMESTAMP.tar.gz -C $APP_DIR .

# 拉取最新代码
cd $APP_DIR
git fetch origin
git checkout $BRANCH
git pull origin $BRANCH

# 安装依赖
npm install

# 重启应用
pm2 restart $APP_NAME

4. 配置 Jenkins Pipeline

在 Jenkins 中创建一个 Pipeline 项目,用于触发自动化部署流程。

  1. 创建 Pipeline 项目

    • 进入 Jenkins 管理界面,点击“New Item”。
    • 输入项目名称,选择“Pipeline”,然后点击“OK”。
  2. 配置 Pipeline

    • 在“Pipeline”部分,选择“Pipeline script from SCM”。
    • 选择 Git 作为 SCM,并填写代码仓库的 URL。
    • 在“Script Path”中填写 Jenkinsfile 的路径(如 Jenkinsfile)。
  3. 编写 Jenkinsfile: 在代码仓库的根目录下创建一个 Jenkinsfile 文件,内容如下:

   pipeline {
       agent any

       stages {
           stage('Checkout') {
               steps {
                   checkout scm
               }
           }

           stage('Deploy') {
               steps {
                   script {
                       def remote = [:]
                       remote.name = 'target-server'
                       remote.host = 'your-target-server-ip'
                       remote.user = 'your-ssh-user'
                       remote.identityFile = '/path/to/your/private/key'

                       sshCommand remote: remote, command: "/path/to/your/deploy.sh"
                   }
               }
           }
       }
   }

5. 触发自动化部署

完成以上配置后,每次代码提交到指定的分支(如 main 分支)时,Jenkins 会自动触发 Pipeline,执行 Shell 脚本完成自动化部署。

6. 总结

通过 Jenkins 和 Shell 脚本的结合,我们可以轻松实现从代码提交到应用部署的全自动化流程。这不仅提高了开发效率,还减少了人为操作带来的错误。希望本文能帮助你快速上手 Jenkins + Shell 自动化部署的实现。

推荐阅读:
  1. Maven、Jenkins实现自动化部署
  2. GO使用Webhook如何实现github自动化部署

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

jenkins shell

上一篇:startup.bat启动Tomcat闪退的原因及怎么解决

下一篇:在vue项目中怎么获取视频的时长

相关阅读

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

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