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

[经验分享] 通过Jenkins发布php代码

[复制链接]

尚未签到

发表于 2018-9-3 12:07:00 | 显示全部楼层 |阅读模式
  笔记内容:通过Jenkins发布php代码
  笔记日期:2018-02-26

26.4/26.5 通过Jenkins发布php代码
  我们都知道Jenkins是一个用于持续集成的工具,所以本文简单介绍一下如何通过Jenkins来发布php代码到远程的机器上,实验环境如下:
  两台机器,一台安装了Jenkins作为Jenkins服务器,一台作为远程的服务器:


  • 192.168.77.130 Jenkins服务器
  • 192.168.77.128 远程服务器
  • 一个远程的公开的git仓库(php代码在这个仓库里)
  如果没有安装过Jenkins的话,可以参考我另一篇关于安装Jenkins的文章。
  在通过Jenkins发布php代码之前,我们首先需要在Jenkins服务的web页面上检查一下 “Git plugin” 和 “Publish Over SSH” 两个插件是否已安装:
  “系统管理” → “管理插件” → “已安装”,然后搜索Git plugin看看是否已安装,一般这个插件都是默认安装的:
DSC0000.jpg

  然后再搜索Publish Over SSH,可以看到如果没有安装是搜索不到的:
DSC0001.jpg

  然后到 “可选插件” 里安装 Publish Over SSH 插件:
DSC0002.jpg

  安装完成:
DSC0003.jpg

  重启Jenkins服务:

  systemctl restart jenkins.service

  确保两个插件都安装好后,点击“系统管理” → “系统设置”,下拉页面,大概在网页的最下面可以找到 “Publish Over SSH” :
DSC0004.jpg

  然后在服务器上先生成一对密钥:
  

[root@server ~]# ssh-keygen -f /root/.ssh/jenkins  
Generating public/private rsa key pair.
  
Enter passphrase (empty for no passphrase):
  
Enter same passphrase again:

  
Your>  
Your public key has been saved in /root/.ssh/jenkins.pub.
  
The key fingerprint is:
  
75:f0:ac:f1:56:6d:f4:a8:9c:d5:57:9b:e8:e3:5f:83 root@server
  
The key's randomart image is:
  
+--[ RSA 2048]----+
  
|          .     o|
  
|           +  .==|
  
|          o +.+o*|
  
|         . *.= ..|
  
|        S . *o   |
  
|           .. o  |
  
|             E ..|
  
|              . o|
  
|               . |
  
+-----------------+
  
[root@server ~]# ls .ssh/
  
id_rsa           jenkins      jenkins.pub

  
authorized_keys >  
[root@server ~]#
  

  生成密钥对后,首先把公钥拷贝到远程的机器上去,也就是把公钥的内容粘贴到 .ssh/authorized_keys 文件里,和我们之前配置远程登录的密钥验证是一样的。
  拷贝完公钥之后,我们来使用以下命令手动测试一下能否通过ssh登录远程的机器:

  ssh -i .ssh/jenkins 192.168.77.128

  能正常登录则代表没有问题,如果出现让你出入用户密码的情况则是密钥没有配置成功,配置成功的情况下登录是不需要密码的。
  完成测试确保能够正常通过ssh登录远程机器后,接着就是把私钥的内容粘贴到 “Key” 这一栏里:
DSC0005.jpg

  然后完成远程机器的配置,点击 “Apply” 后如果不需要再继续添加远程机器则点击 “保存” 即可:
DSC0006.jpg

  注:Jenkins SSH Key 这一栏默认会使用Jenkins管理员admin账户的密码,可以不填则设置为空密码。
  以上我们配置完了插件以及远程机器,现在就可以开始新建任务了:
DSC0007.jpg

DSC0008.jpg

  配置项目名称与描述:
DSC0009.jpg

  配置远程仓库的地址:
DSC00010.jpg

  构建触发器,以及构建环境都不需要配置,因为我们发布的是php代码:
DSC00011.jpg

  最后就是 “构建” ,最核心的一步,选择 “Send files or execute commands over SSH” :
DSC00012.jpg

  简单说明:


  • SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件
  • Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
  完成以上操作后,就可以使用这个刚刚创建的任务去工作了,点击左面的 “立即构建” ,就能把git上的代码发布到指定的服务器上:
DSC00013.jpg

  构建中:
DSC00014.jpg

  构建完成:
DSC00015.jpg

  点击查看输出日志:
DSC00016.jpg

  输出日志如下:
DSC00017.jpg

  到远程机器上,看看是否已经存在jenkins_test这个目录:
  

[root@client ~]# ll /tmp/jenkins_test/  
总用量 108
  
drwxr-xr-x 2 nobody nobody    64 2月  26 15:04 D11Z
  
drwxr-xr-x 2 nobody nobody  4096 2月  26 15:04 D12Z
  
drwxr-xr-x 2 nobody nobody    23 2月  26 15:04 D13Z
  
drwxr-xr-x 2 nobody nobody  4096 2月  26 15:04 D14Z
  
drwxr-xr-x 2 nobody nobody  4096 2月  26 15:04 D15Z
  
drwxr-xr-x 2 nobody nobody    24 2月  26 15:04 D17Z
  
drwxr-xr-x 2 nobody nobody    73 2月  26 15:04 D18Z
  
drwxr-xr-x 2 nobody nobody   148 2月  26 15:04 D19Z
  
drwxr-xr-x 2 nobody nobody    80 2月  26 15:04 D20Z
  
drwxr-xr-x 2 nobody nobody  4096 2月  26 15:04 D21Z
  
drwxr-xr-x 2 nobody nobody   122 2月  26 15:04 D22Z
  
-rw-r--r-- 1 nobody nobody 18044 2月  26 15:04 LICENSE
  
-rw-r--r-- 1 nobody nobody   419 2月  26 15:04 README.md
  
[root@client ~]#
  

  如上,可以看到文件都同步成功了,而且文件的属主属组也是我们设置的nobody。之后只要远程仓库里的源文件的内容发生改变,需要同步到线上则只需要点击该任务的 “立即构建” 即可。



运维网声明 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-562032-1-1.html 上篇帖子: Ant+jmeter+jenkins 持续集成设置 下篇帖子: Jenkins 项目构建之“构建后操作”——Build other projects
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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