gitlab+jenkins持续部署

总体流程参考上篇文章gitee+jenkins持续部署流程

模拟环境:

jenkins:192.168.10.20:8080

gitlab:192.168.10.101

一、配置gitlab token

点击头像下拉框-【Settings】-【Access Tokens】

Name: 随便写

Scopes:勾选api

点击下方确认按钮,创建Token

复制下方【Feed token】备用

二、安装jenkins的gitlab插件

安装后重启jenkins

三、配置jenkins的gitlab配置

【系统管理】-【系统配置】-【Gitlab】

Connection name:随便写

Gitlab host URL:写gitlab的访问地址

Credentials:点击【添加】

Domain:选择【全局凭证】

类型:【GitLab API token】

范围:【全局】

API token:填写 上面gitlab里复制的token

添加后,Credentials选择【GitLab API token】

然后测试连接-【保存】

四、新建jenkins任务

新建软件项目,参考配置

配置项目参数

保存Url连接,要填写到gitlab里

五、配置gitlab触发

选择【Settings】-【Webhooks】

URL:输入jenkins里【构建触发器】提示的url

Trigger:勾选【Push events】

保存【Save Changes】

测试触发

选择创建好的Project Hooks【Test】-【Push events】

返回200就代表成功,可以去jenkins里查看输出

六、贴上jenkins被触发构建项目的脚本

本地将gitlab里的html代码打包成tar.gz格式的压缩包【nginx-build.sh】

然后用ansible【nginx-deploy.yaml】复制到目标主机,最后远程执行创建容器的脚本【nginx-deploy.sh】

[root@zhuhao script]# cat nginx-build.sh 
#!/bin/bash

WORK_DIR=/var/lib/jenkins/workspace/nginx-3

DATE_TIME=`date +%Y-%m-%d-%H-%M-%S`
TAR_NAME=nginx-${DATE_TIME}.tar.gz

WEB_DIR=/root/deploy/html

cd ${WORK_DIR} && tar -cvf /opt/${TAR_NAME} ./*
echo ${TAR_NAME} > /root/server/script/tarname


ansible-playbook /root/server/script/nginx-deploy.yaml -e tarname=`cat /root/server/script/tarname`
[root@zhuhao script]# cat Dockerfile 
From node1:5000/zh_nginx

COPY html /usr/share/nginx/html
[root@zhuhao script]# cat nginx-deploy.sh 
#!/bin/bash

cd /root/deploy
docker stop nginx-web
docker rm nginx-web

docker build -t nginx-web . 

docker run --name nginx-web -d -p 88:80 nginx-web
[root@zhuhao script]# cat nginx-deploy.yaml 
---
- hosts: nginx-node

  tasks: 
    #- name: copy deploy.sh
    #  copy: src=/root/server/script/nginx-deploy.sh dest=/root/deploy/nginx-deploy.sh
    - name: copy Dockerfile
      copy: src=/root/server/script/Dockerfile dest=/root/deploy/Dockerfile
    - name: copy tar
      copy: src=/opt/{{ tarname }} dest=/root/deploy/{{ tarname }}
    - name: copy verison
      copy: src=/root/server/script/tarname dest=/root/deploy/tarname
    - name: tar -xvf
      shell: tar -xf /root/deploy/{{ tarname }} -C /root/deploy/html/
    - name: run script nginx-deploy
      script: /root/server/script/nginx-deploy.sh
[root@zhuhao script]# cat tarname 
nginx-2020-09-26-00-41-27.tar.gz

评论

  1. 博主
    5年前
    2020-9-26 21:06:27

    2020年9月26日21:06:22

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇