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

[经验分享] jenkins git公有仓库与私有仓库发布代码

[复制链接]

尚未签到

发表于 2018-9-3 12:53:46 | 显示全部楼层 |阅读模式
  1 发布php代码
  - jenkins已经搭建完成,现在开始来做一个php发布代码的任务
  - 在发布php代码时先看看是否有两个插件
在系统管理-管理插件- 已安装插件-  
检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
  
[root@chy01 jenkins]# systemctl restart jenkins //重启服务
  - 需要生成一对密钥对用来登录远程机器(远程机器即是发布php代码的机器)
[root@chy01 ~]# cd /root/.ssh/  
[root@chy01 .ssh]# ls
  
aaa      authorized_keys  boy.pub  id_rsa      jump      known_hosts  lf1.pub
  
aaa.pub  boy              config   id_rsa.pub  jump.pub  lf1
  
//我之前有生成过密钥对在这我可以拿来直接用,你也可以根据自己的需求来重新生成
  - 之后在设置jenkins
系统管理-系统设置-Publish over SSH 找到这一项,添加之前生成的密钥对的私钥即可  
之后在将公钥放在想要发布php代码的机器(简称远程机器)我这边放在了[root@chy ~]# cat .ssh/authorized_keys
  
这个机器上面
  
[root@chy01 ~]# ssh 192.168.212.10  测试可以登录到远程的机器
  ![mark](http://oqz6pu8vi.bkt.clouddn.com/blog/20171120/163348636.png?imageslim)
  SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/(根)
  如果是多台web server,继续点击“增加”,重复以上操作
  - 创建新的任务
DSC0000.png

DSC0001.png

  Repository URL”填写你项目的git地址,如果是公共项目可以不设置下面的参数,直接填写一个git地址即可,若是私有项目(-none),需要填写认证信息,比如可以选择 “SSH Username whith private key”,然后设置Username以及private key
  “Branches to build” 默认为*/master,意思是发布的分支为master,保持默认
DSC0002.png

  “构建触发器”和“构建环境”留空
  - “构建”,选择 “Send files or execute commands over SSH”
DSC0003.png

  Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
  - 开始发布代码
DSC0004.png

  - 查看发布的结果
[root@chy ~]# ls /tmp/jenkins_test/  
D11Z  D13Z  D15Z  D18Z  D20Z  D22Z     README.md
  
D12Z  D14Z  D17Z  D19Z  D21Z  LICENSE
  
//查看已经发布成功
  这里需要注意下如果是在git上重新更新了一下文件只需要在点下“立即构建”就会更新在git上更新的项目的内容
  (如上我们用的是git的公共的仓库,可是我有一个私有的仓库应该怎么做呢?
  - 需求:需要将discuz的代码发布到客户机上(chy这台机器上)。
  在这我们有三台机器:
  chy(192.168.212.10)--这台是最后的客户机查看discuz发布代码用的机器
  chy02(192.168.212.12)--这台是搭建的git的私有仓库
  chy01(192.168.212.11)--这台是要将discuz代码上传到私有仓库的一台机器,我这边需要上传到私有仓库然后jenkins用私有仓库的地址发布
  如上的三台机器都是centos7
  git的私有仓库192.168.212.12 chy02(快速搭建)
[root@chy02 ~]# yum install -y git  
[root@chy02 ~]# useradd -s /usr/bin/git-shell git
  
[root@chy02 ~]# cd /home/git/
  
[root@chy02 git]# mkdir .ssh
  
[root@chy02 git]# touch .ssh/authorized_keys
  
[root@chy02 git]# chmod 600 .ssh/authorized_keys
  
[root@chy02 git]# chown -R git:git .ssh
  
[root@chy02 git]# vi .ssh/authorized_keys
  
放入公钥,保证客户机可以访问我们的git私有仓库的服务端
  
[root@chy01 ~]# ssh git@192.168.212.12
  
# cat /etc/motd
  
fatal: Interactive git shell is not enabled.
  
hint: ~/git-shell-commands should exist and have read and execute access.
  
Connection to 192.168.212.12 closed.
  到git的客户机里开始将discuz代码上传到我们的私有仓库里
[root@chy01 ~]# cd /tmp  
You have new mail in /var/spool/mail/root
  
[root@chy01 tmp]# git clone git@192.168.212.12:/data/gitroot/sample.git
  
Cloning into 'sample'...
  
warning: You appear to have cloned an empty repository.
  
[root@chy01 tmp]# cd sample/
  
[root@chy01 sample]# ls -la
  
total 12
  
drwxr-xr-x   3 root root 4096 Nov 22 00:14 .
  
drwxrwxrwt. 15 root root 4096 Nov 22 00:14 ..
  
drwxr-xr-x   7 root root 4096 Nov 22 00:14 .git
  
[root@chy01 sample]# vim discuzz.html
  
[root@chy01 sample]# git add discz.html
  
[root@chy01 sample]# git commit -m "daima"
  
[master d22de14] daima
  
1 file changed, 470 insertions(+)
  
create mode 100644 discz.html
  
[root@chy01 sample]# git push
  
Counting objects: 3, done.
  
Compressing objects: 100% (2/2), done.
  
Writing objects: 100% (2/2), 252 bytes | 0 bytes/s, done.
  
Total 2 (delta 0), reused 0 (delta 0)
  
To git@192.168.212.12:/data/gitroot/sample.git
  
   a2ee2f6..d22de14  master -> master
  
如上是上传discuz的代码
  git私有仓库查看是否上传
[root@chy02 sample.git]# git log --pretty=oneline  
b081942e4a9eed04ffe34e7b2a6796270f1fcc69 discuzz 代码
  现在需要在jenkins里下发discuz的代码
  - 如下是新建一个任务
DSC0005.png

  - 创建git私有仓库的信息
DSC0006.png

DSC0007.png

  - 如下的就与之前的公有仓库的操作是一致的,这里就不细说了
DSC0008.png

  -最后就开始构建
  - 在客户机上查看是否有构建的任务
[root@chy ~]# cd /tmp/jenkins_test/  
[root@chy jenkins_test]# ls
  
1.txt  D12Z  D14Z  D17Z  D19Z  D21Z  discuzz.html  LICENSE    习题答案.txt
  
D11Z   D13Z  D15Z  D18Z  D20Z  D22Z  discz.html    README.md
  
查看到已有discuzz
  - 这里需要再次注意下,如果是自己搭建的私有仓库一定要记得每台机器上要有相应的密钥。切记切记。
  当然后期只要是构建成功还需要发一封邮件提醒,来提升工作效率!!



运维网声明 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-562066-1-1.html 上篇帖子: jenkins 基础配置安装(Ⅰ) 下篇帖子: 接口自动化测试PHPUnit-引入jenkins自动化执行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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