热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DevOpsGitlab分支管理、代码合并及实现develop与master分支代码部署

 代码自动部署流程  gitlab新建develop分支gitlab定义分支名称并创建由于之前授予了laomao和laoxiao用户对各自项目的Developer权限,所以只拥有代

 代码自动部署流程 

 gitlab 新建 develop 分支

gitlab 定义分支名称并创建

由于之前授予了laomao和laoxiao用户对各自项目的Developer权限,所以只拥有代码的更新权限,而并没有代码的合并权限。下面模拟分支develop的代码更新,经测试后合并入master分支

clone linux39的develop分支代码并更新重新上传

报错key校验失败
[root@master metrics]# git clone -b develop https://github.com/kubernetes-sigs/metrics-server.git

重新上传公钥到gitlab,上传私钥到jenkins
[root@jenkins
~]# cat ~/.ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
[root@jenkins
~]# cat ~/.ssh/id_rsa.pub
ssh
-rsa AAAAB3NzaC1yc2FFKRcZ13SgU/zNQUcJvP+5a4Rt8KYVPU9DCCl root@jenkins
[root@jenkins
~]# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAwng9wP5drQoCJT7X6g1L3QICRu0wXCk4pJNQAUws9L8Ei6le
M87lm8b7OnugJAxQ4sH93TaoOCh25iaO7mCWafqy
/k3KHKf4iU291fgBAMHPXmEg
zPg
+0Demd+Ag8fOkC/Qx5JC8qls+1FSoRGDw6YodSAlz0vl+d8YfRd1SdqX9visD
uVmah0w1H
/B5ngnMCuw4/NEw1d1RpRsSlvsrvTwI4OOImMqsBIvMPFo=
-----END RSA PRIVATE KEY-----

[root@jenkins
~]# git clone -b develop git@159.138.5.152:linux39/web1.git //重新clone
Cloning into
'web1'...
The authenticity of host
'159.138.5.152 (159.138.5.152)' can't be established.
ECDSA key fingerprint is SHA256:aq/XMS7sSqpxsDdUaS1+kFzeYWNxoc8mdK5+CCoj+Yg.
ECDSA key fingerprint
is MD5:79:2b:4c:44:ec:66:e1:d1:d9:00:1b:5d:a7:33:cc:b9.
Are you sure you want to
continue connecting (yes/no)? yes
Warning: Permanently added
'159.138.5.152' (ECDSA) to the list of known hosts.
remote: Enumerating objects:
3, done.
remote: Counting objects:
100% (3/3), done.
remote: Total
3 (delta 0), reused 0 (delta 0)
Receiving objects:
100% (3/3), done.
[root@jenkins
~]# ll
total
4
drwxr
-xr-x 3 root root 4096 Dec 27 22:50 web1
[root@jenkins
~]# cd web1/
[root@jenkins web1]# ll
total
4
-rw-r--r-- 1 root root 37 Dec 27 22:50 index.html
[root@jenkins web1]# cat index.html
this is linux39 test page v1
[root@jenkins web1]# echo "this is linux39 test page v2" >> index.html
[root@jenkins web1]# cat index.html
this is linux39 test page v1this is linux39 test page v2 //这里发现居然追加到了末尾

  ]# echo 'this is linux39 test page v3' >> index.html    //使用单引号发现追加完成
  [root@jenkins web1]# cat index.html
  this is linux39 test page v1
  this is linux39 test page v2
  this is linux39 test page v3

[root@jenkins web1]# git add .
[root@jenkins web1]# git status
# On branch develop
# Changes to be committed:
# (use
"git reset HEAD ..." to unstage)
#
# modified: index.html
#
[root@jenkins web1]# git commit
-m "develop v2"
[develop c07a3ea] develop v2
1 file changed, 2 insertions(+), 1 deletion(-)
[root@jenkins web1]# git push
warning: push.
default is unset; its implicit value is changing in
Git
2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the
default changes, use:
git config
--global push.default matching
To squelch
this message and adopt the new behavior now, use:
git config
--global push.default simple
See
'git help config' and search for 'push.default' for further information.
(the
'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Counting objects:
5, done.
Compressing objects:
100% (2/2), done.
Writing objects:
100% (3/3), 278 bytes | 0 bytes/s, done.
Total
3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request
for develop, visit:
remote: http:
//159.138.5.152/linux39/web1/merge_requests/new?merge_request%5Bsource_branch%5D=develop
remote:
To git@
159.138.5.152:linux39/web1.git
b8aeb8d..c07a3ea develop
-> develop
进入gitlab查看已经更新完成

测试如何将灰度环境的代码和master的代码部署到不同的服务器

web1 master
web2 develop

jenkins创建工程

linux38-web1-develop

分支选择 */develop

#cd /var/lib/jenkins/workspace/linux39-web1 //使用jenkins拉取代码默认工作路径,当项目名称发生变化,对应的代码工作目录会发生变化

cd /var/lib/jenkins/workspace/linux38-web1-develop

 tar -zcvf myapp.tar.gz ./*

 scp myapp.tar.gz www@web2:/data/tomcat/tomcat_appdir

 ssh www@web2 "bash /opt/apps/tomcat.sh stop"

 ssh www@web2 "cd /data/tomcat/tomcat_appdir ; rm -rf /data/tomcat/tomcat_webapps/myapp/* ; tar -xvf /data/tomcat/tomcat_appdir/myapp.tar.gz -C /data/tomcat/tomcat_webapps/myapp"

 ssh www@web2 "bash /opt/apps/tomcat.sh start"

构建完成测试访问,发现已经部署完成

[root@jenkins workspace]# curl http://192.168.0.79:8080/myapp/index.html
this is linux39 test page v1
this is linux39 test page v2

 在服务器上如何查看项目配置

]# cat /var/lib/jenkins/jobs/linux38-web1-develop/config.xml

当develop分支代码测试没问题后,将代码部署到现网环境,这里为web1服务器

 使用laomao用户提交合并develop分支代码到master的申请,由项目主管审批

jenkins新建master分支部署项目,当代码分支合并完成后部署到现网web1 tomcat服务器

项目名称: linux38-web1-master

cd /var/lib/jenkins/workspace/linux38-web1-master
tar
-zcvf myapp.tar.gz ./*
scp myapp.tar.gz www@web1:/data/tomcat/tomcat_appdir
ssh www@web1 "bash /opt/apps/tomcat.sh stop"
ssh www@web1 "cd /data/tomcat/tomcat_appdir ; rm -rf /data/tomcat/tomcat_webapps/myapp/* ; tar -xvf /data/tomcat/tomcat_appdir/myapp.tar.gz -C /data/tomcat/tomcat_webapps/myapp"
ssh www@web1 "bash /opt/apps/tomcat.sh start"

部署完成后测试tomcat

[root@jenkins ~]# curl http://web1:8080/myapp/index.html
this is linux39 test page v1
this is linux39 test page v2
this is linux39 test page v3
[root@jenkins
~]# curl http://web1:8080/myapp/index.html
this is linux39 test page v1
this is linux39 test page v2

如何使用haproxy代理将测试环境服务器和现网服务器区分访问

listen web_port
bind
192.168.0.100:80 //keepalived虚拟地址
mode http
log
global
server web1
192.168.0.142:8080 check inter 3000 fall 2 rise 5
listen web_port
bind
192.168.64.101:80 //keepalived虚拟地址
mode http
log
global
server web2
192.168.0.79:8080 check inter 3000 fall 2 rise 5

 

越学越感到自己的无知


原文链接:https://www.cnblogs.com/rtnb/p/15734977.html



推荐阅读
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 本文为转载,原连接:https:www.zhihu.comquestion40822826简单说一下吧做要解释这些要从netconf说起。netconf ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • 使用gitolite搭建一个私有的git服务器,来管理git仓库。有了它,就可以跟小伙伴们愉快地进行远程协作啦。今天又折腾了一遍,在这里把几个关键的步骤记下来,方便以后查阅。准备工 ... [详细]
  • 使用npmi编译vue项目出现无法下载github.com中的对应的包源文件报错信息如下:npmERR!fatal:unabletoaccess'https:github ... [详细]
  • webbrowser控件打开一页面。此页面包含关闭当前页面的按钮当点击此网页中关闭页面按钮,页面退出。当再次访问webbrowser控件时报句柄错误。请问如何解决? ... [详细]
  • 开发笔记:DevOps Gitlab环境部署
    本文由编程笔记#小编为大家整理,主要介绍了DevOpsGitlab环境部署相关的知识,希望对你有一定的参考价值。DevOps介绍 ... [详细]
  • 消息中间件RabbitMQ 高级特性之消费端ACK与重回队列
    什么是消费端的ACK和重回队列?消费端的手工ACK和NACK消费端进行消费的时候,如果由于业务异常我们可以进行日志的记录,然后进行补偿如果由于服务器宕机等严重问题 ... [详细]
author-avatar
Liberty_Ai2502871477
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有