记一次GitLab+Jenkins自动化部署+免密传输

1、Jenkins创建
2、itLab+Jenkins实现持续集成+自动化部署
3、代码传输rsync,免密登录配置ssh密钥

如果免密登录不生效,则按照如下设置接收文件服务器文件夹权限
cd /home
chmod 600 app/.ssh/authorized_keys
chmod 700 app/.ssh
chmod 755 app

4、Jenkins 拉取代码配置

Jenkinsfile文件代码
pipeline {
   agent any

   stages {
       stage('backup') {// 备份
         when { environment name: 'deploy_env', value: 'publish' }
        steps {
          sh label: '备份上次发布dist', 
          script: 
            '''
               pwd
               rsync -avzr --delete ./dist  ../open-his-backup
            '''
        }
      }
      stage('checkout') {//拉取新代码
         when { environment name: 'deploy_env', value: 'publish' }
         steps {
            git credentialsId: 'ssh_id', url: 'ssh://git@10.1.6.xx:2222/his/open-his.git'
         }
      }
     
      stage('transfer') { //发布到服务器
       when { environment name: 'deploy_env', value: 'publish' }
        steps { 
          sh label: '发布到服务器', 
          script: 
            '''
               pwd
               rsync -avzr --delete ./dist app@10.1.6.xxx:/home/app/open-his
            '''
        }
      }
      
      stage("rollback") {
         when { environment name: 'deploy_env', value: 'rollback' }
         steps { 
          sh label: '回滚到上次发布', 
          script: 
            '''
               pwd
               rsync -avzr --delete ../open-his-backup/dist app@10.1.6.xxx:/home/app/open-his
            '''
        }

      }
     
   }
}

5、pipeline语法
6、jenkins发布和回滚

相关参考文件:
GitLab+Jenkins实现持续集成+自动化部署(很全)
https://www.cnblogs.com/yanjieli/p/10613212.html

让Jenkins执行GitHub上的pipeline脚本
https://blog.csdn.net/boling_cavalry/article/details/100857361

nginx配置
https://segmentfault.com/a/1190000023187710

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。