设为首页 收藏本站
查看: 920|回复: 0

[经验分享] jenkins中通过git发版操作记录

[复制链接]

尚未签到

发表于 2018-1-7 09:43:40 | 显示全部楼层 |阅读模式
  之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录。
  一、不管是通过svn发版还是git发版,都要首先下载svn或git插件。
  登陆jenkins,依次点击“Jenkins首页”->“系统管理”->“管理插件”->"可选插件",选在svn或git有关插件(ctrl+f搜索"svn"或"git"),直接进行安装即可
  安装成功后,在“已安装”里可以看到:


  这样,在构建任务的配置中,在”源码管理“里就有svn和git的选项了

  二、接着说下git发版配置。git代码是在gitlab平台托管的。
  1)如果要发版的代码在gitlab上是Private私有状态或Internal状态,那么就只能通过ssh方式连接(推荐此种方式,比较安全),这两种模式下是不能通过http方式连接。
  做法如下:
  现将jenkins本机的公钥上传到gitlab上(保证gitlab机器的ssh端口已对客户机开放)
[iyunv@redmine ~]# cat /root/.ssh/id_rsa.pub

  ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmlV29T9ViFA+ld+ziZqDXwcOwAzSU8B4oESOZLEs51m+us8MPLYED7s1gQTmnXx2yTxCT67WnHUpRExm4gZj0jQTUi5uYFMuEJnXYLi7/YgeTjRkjYFs8RdpsNUp+FA6bmBSVLa/JDvWrvdO1xhicJp/8cX/c5Y16iXIgDWnewMgoknUYHZL+cplF5+JYSSb9We3+qq2GzWnkX5VkuSq9ky+ZYbUH/JrlbTAp8rB4J5+THYz5ahvP1UteMcaEf9duoT7N+VJLANmOWcEn7Q5JnNhNVJz5hafYg5cQgFOHmixriZaPsdAJ+yaN21sv+pBbTdzbHQn1oz/gpbd47imqQ== root@redmine.wangshibo.com


  然后在jenkins本机测试是否能正常下载gitlab代码(假设git的url是git.wangshibo.net)

  jenkins本机测试代码下载:(下面的两行--global的全局配置要跟上,不然提交后的记录在gitlab上是追踪不到的,只有这个全局配置了,才能在gitlab上找到相应用户的提交记录)
[iyunv@redmine ~]# mkdir git

[iyunv@redmine ~]# cd git/

[iyunv@redmine git]# git init .

  Initialized empty Git repository in /root/git/.git/
[iyunv@redmine git]# git config --global user.name "王士博"                         //全局设置,指定下载使用的gitlab的用户名

[iyunv@redmine git]# git config --global user.email "root@redmine.wangshibo.com-jenkins"      //全局设置,指定下载使用的Keys名称,就是上面添加的Keys

[iyunv@redmine git]# git clone git@git.wangshibo.net:weixin/weixin.git

  Initialized empty Git repository in /root/git/weixin/.git/
  remote: Counting objects: 10, done.
  remote: Compressing objects: 100% (6/6), done.
  remote: Total 10 (delta 0), reused 0 (delta 0)
  Receiving objects: 100% (10/10), done.
  然后在jenkins里相关任务配置里指定git路径:

  2)如果要发版的代码在gitlab上是Public公开状态(这是必要前提条件,如下图),那么就可以直接通过http连接(http连接只能在这种模式下才能成功!要保证gitlab机器的http端口对客户机开放)


  这样直接通过git clone http://git.wangshibo.net:8081/weixin/weixin.git 就能下载代码了
  使用http方式直接连接gitlab显然没有ssh连接方式安全,但是也可以做些安全设置,比如在gitlab本机的iptables里做端口限制(如上是8081端口),添加白名单等。
  然后在jenkins里相关任务配置里指定git路径:

  三、jenkins上的发版脚本
  脚本如下:

  脚本内容:
  #!/bin/bash
  SOURCE_DIR=/srv/apache-tomcat-7.0.67/webapps/jenkins/jobs/${JOB_NAME}/workspace/
  DEST_DIR=/Data/app/xqsj_wx/
  REMOTE_IP=*.*.*.*
  /usr/bin/rsync -e "ssh -p25791" -avpgolr --delete-before $SOURCE_DIR $REMOTE_IP:$DEST_DIR
  脚本解释:
  1)通过上面的git将业务代码下载到jenkins本机jobs里对应任务的workspace下。
  本机的jenins部署路径是/srv/apache-tomcat-7.0.67/webapps/jenkins
[iyunv@redmine workspace]# pwd                         //wx-test是jenkins界面的任务工程名,脚本中${JOB_NAME}是jenkins的内置变量

  /srv/apache-tomcat-7.0.67/webapps/jenkins/jobs/wx-test/workspace
  2)再通过rsync将下载的代码分发到远程目标机器上即可。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432488-1-1.html 上篇帖子: 利用jenkins的api来完成相关工作流程的自动化 下篇帖子: Jenkins常用插件之Deploy Plugin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表