GitLab + Jenkins 日常操作

简介: GitLab + Jenkins 日常操作

GitLab + Jenkins 日常操作



一、Jenkins 回滚操作


1.通过 Git 来回滚

2.通过 Build 来回滚


二、Jenkins 实现邮件报警


1.配置邮件报警

2.配置项目


三、Jenkins 远程管理方式


1.通过 SSH Plugin 插件

2.通过 Shell 命令

3.通过 Ansible


一、Jenkins 回滚操作



  • 注意:Jenkins 上需要安装 Gogs 插件。


1.通过 Git 来回滚


Gogs Webhook


image.png


image.png



构建


case $Status in
  Rollback)
    echo "这是一个回退操作..."
    echo "版本号为:$Version"
    git reset --hard $Version
    echo "回退完成"
    ;;
  *)
    exit
esac


scp /var/lib/jenkins/workspace/web/index.html root@192.168.1.3:/var/www/html/


image.png


Build with Parameters


image.png


查看

image.png


image.png


现在我们将 GitLab 远程仓库中的 index.html 进行修改,再次进行发布


image.png


回退


image.png


查看


image.png


2.通过 Build 来回滚


image.png


通过发布时备份,回滚时选定备份文件进行回滚


case $Status in
  Deploy)
    echo "发布前进行打包备份..."
    echo "Status:$Status"
    Path="${WORKSPACE}/bak"
    if [ -d $Path ]
    then
      echo "This Directory Already Exists"
    else
      mkdir -p $Path
    fi
    cd ${WORKSPACE}
    tar czf bak/${JOB_NAME}-${BUILD_NUMBER}.tar.gz * --exclude=bak
    find $Path -mtime 1 -name "*.tar.gz" -exec rm -rf {} \;
    scp ${WORKSPACE}/index.html root@192.168.1.3:/var/www/html/
    echo "Deploy Success"
    ;;
  Rollback)
    cd ${WORKSPACE}/bak
    tar xf ${JOB_NAME}-${Version}.tar.gz
    scp ${WORKSPACE}/bak/index.html root@192.168.1.3:/var/www/html/
    ;;
  *)
    exit
    ;;
esac


image.png


Build with Parameters


image.png


查看


image.png


现在我们将 GitLab 远程仓库中的 index.html 进行修改,再次进行发布


image.png


回退


image.png


查看


image.png


二、Jenkins 实现邮件报警



1.配置邮件报警


Dashboard ——> Manage Jenkins ——> Configure System


image.png


image.png


image.png


image.png


查看


image.png


2.配置项目


image.png


当 Build 失败时,查看邮箱


image.png


三、Jenkins 远程管理方式



1.通过 SSH Plugin 插件


  • 注意:需要安装 SSH 插件


添加凭据


image.png


image.png


配置项目


image.png


  • 注意:使用 SSH 插件配置时,Command 命令会在指定的 SSH 主机上运行。


2.通过 Shell 命令


image.png


  • 注意:当使用 SSH 来进行管理时,需要将 Jenkins 上的公钥部署到被管理端上。


3.通过 Ansible


[root@Jenkins ~]# yum -y install ansible
[root@Jenkins ~]# cat <<END > /etc/ansible/hosts
[Client]
192.168.1.3
END
[root@Jenkins ~]# ansible Client -m ping


image.png


新建一个 Playbook 用于验证


[root@Jenkins ~]# mkdir -p /data/Ansible-playbook
[root@Jenkins ~]# vim /data/Ansible-playbook/jenkins-mkdir.yaml
---
- hosts: Client
  gather_facts: no
  tasks:
  - name: 创建 Test 目录
    file: path=/data/Test state=directory


在 Jenkins 上安装 Ansible 插件


image.png


配置 Jenkins 项目


image.png


查看


image.png


image.png


相关文章
|
5月前
|
运维 Java Devops
阿里云云效操作报错合集之在进行GitLab代码分支迁移时遇到报错,一般是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
69 0
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
143 0
|
3月前
|
数据可视化 jenkins 测试技术
GitLab CI/CD 和 Jenkins对比
8月更文挑战第25天
361 5
|
3月前
|
jenkins Devops Java
jenkins学习笔记之十:配置Gitlab提交流水线
jenkins学习笔记之十:配置Gitlab提交流水线
|
3月前
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
|
3月前
|
存储 Ubuntu jenkins
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
185 0
|
5月前
|
jenkins Java 持续交付
蓝易云 - 从零开始配置Jenkins与GitLab集成:一步步实现持续集成
以上就是从零开始配置Jenkins与GitLab集成的步骤,希望对你有所帮助。
109 2
|
6月前
|
jenkins 持续交付 API
上传gitlab代码后jenkins自动进行发布的配置
上传gitlab代码后jenkins自动进行发布的配置
76 1
|
6月前
|
存储 jenkins 持续交付
百度搜索:蓝易云【Docker+Rancher+Harbor+GitLab+Jenkins搭建CI/CD环境】
请注意,上述步骤仅为一个示例,实际搭建过程可能因环境和需求的不同而有所变化。因此,在实际操作中,请参考相应工具的官方文档和指南,以确保正确地配置和集成这些工具。
110 3