GitLab + Jenkins 日常操作

GitLab + Jenkins 日常操作

  • 一、Jenkins 回滚操作
    • 1.通过 Git 来回滚
    • 2.通过 Build 来回滚
  • 二、Jenkins 实现邮件报警
    • 1.配置邮件报警
    • 3.配置项目
  • 三、Jenkins 远程管理方式
    • 1.通过 SSH Plugin 插件
    • 2.通过 Shell 命令
    • 3.通过 Ansible

一、Jenkins 回滚操作

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

1.通过 Git 来回滚

Gogs Webhook
GitLab + Jenkins 日常操作_第1张图片
GitLab + Jenkins 日常操作_第2张图片
构建

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/

GitLab + Jenkins 日常操作_第3张图片
Build with Parameters
GitLab + Jenkins 日常操作_第4张图片
查看
GitLab + Jenkins 日常操作_第5张图片
GitLab + Jenkins 日常操作_第6张图片
现在我们将 GitLab 远程仓库中的 index.html 进行修改,再次进行发布
GitLab + Jenkins 日常操作_第7张图片
回退
GitLab + Jenkins 日常操作_第8张图片
查看
GitLab + Jenkins 日常操作_第9张图片

2.通过 Build 来回滚

GitLab + Jenkins 日常操作_第10张图片
通过发布时备份,回滚时选定备份文件进行回滚

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

GitLab + Jenkins 日常操作_第11张图片
Build with Parameters
GitLab + Jenkins 日常操作_第12张图片
查看
GitLab + Jenkins 日常操作_第13张图片
现在我们将 GitLab 远程仓库中的 index.html 进行修改,再次进行发布
GitLab + Jenkins 日常操作_第14张图片
回退
GitLab + Jenkins 日常操作_第15张图片
查看
GitLab + Jenkins 日常操作_第16张图片

二、Jenkins 实现邮件报警

1.配置邮件报警

Dashboard ——> Manage Jenkins ——> Configure System
GitLab + Jenkins 日常操作_第17张图片
GitLab + Jenkins 日常操作_第18张图片
GitLab + Jenkins 日常操作_第19张图片
查看
GitLab + Jenkins 日常操作_第20张图片

3.配置项目

GitLab + Jenkins 日常操作_第21张图片
当 Build 失败时,查看邮箱
GitLab + Jenkins 日常操作_第22张图片

三、Jenkins 远程管理方式

1.通过 SSH Plugin 插件

  • 注意:需要安装 SSH 插件

添加凭据
GitLab + Jenkins 日常操作_第23张图片
GitLab + Jenkins 日常操作_第24张图片
配置项目
GitLab + Jenkins 日常操作_第25张图片

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

2.通过 Shell 命令

GitLab + Jenkins 日常操作_第26张图片

  • 注意:当使用 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

GitLab + Jenkins 日常操作_第27张图片
新建一个 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 插件
GitLab + Jenkins 日常操作_第28张图片
配置 Jenkins 项目
GitLab + Jenkins 日常操作_第29张图片
查看
GitLab + Jenkins 日常操作_第30张图片
GitLab + Jenkins 日常操作_第31张图片

你可能感兴趣的:(CI/CD,gitlab,centos,jenkins,运维,原力计划)