开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

自动化部署之jenkins发布PHP项目

简介:
+关注继续查看

使用git+jenkins实现持续集成
自动化部署之jenkins发布PHP项目
构建一个自由风格的php-deploy
自动化部署之jenkins发布PHP项目
Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿
自动化部署之jenkins发布PHP项目
源码管理:这里使用git插件,也可以使用svn插件
自动化部署之jenkins发布PHP项目
将git路径存在这里还需要权限认证,否则会出现error 。
jenkins服务器上生成SSH-Key

[root@linux-node2 ~]# yum install -y git
[root@linux-node2 ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:00FQjn5P6qAtok4BuE42TyfuNJnblzZ389XwKBhmHjY root@linux-node2
The key's randomart image is:
+---[RSA 2048]----+
|        .oo      |
|.        +       |
|o       . o      |
| o     . . .     |
|.+.o .  S E . .  |
|+ =.=    B O   +.|
| ..B    o + o ..o|
| .o = .B + o ..  |
| .o+ o+.+ o o.   |
+----[SHA256]-----+
[root@linux-node2 ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+/XyUMNP5Wm63hhcACosVyRtmJxTSnT46HSKZ2PhduTHPIJcfhVTmeCk1zwO0fP8PmwXFf0+G9ki8CupE/+xcOy14TCqxNgvP8o514IjXOFV7SO1lnHKH3t0RfaFEloRZHnrgIcWiZrFvYRT/TFznWO86sfHPzlW6WF9elTqRURNR60bwv9C6iw4PpYjGVIST/SeGl75axtUjJr544jB5pEWtNZ09ktCKpPeFBvgCc9exdzOQuzaCXQrroNU0p6MB6KkoIOmpkN92cDPdg4EgBYDjwcl38FbXOq3N0QL8PT+IZpHBWFVEAZU2alI02H5NNUy9p2K/Br4NY3UvYZiP root@linux-node2

自动化部署之jenkins发布PHP项目

自动化部署之jenkins发布PHP项目

命令行测试添加ssh-key后能否正常拉取
[root@linux-node2 ~]# git clone git@192.168.56.11:java/app1.git
Cloning into 'app1'...
The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established.
ECDSA key fingerprint is SHA256:p2lhKmsPQ6K+dWHHvbJg0GV+Ni9VM7vlViKrYsZLP1s.
ECDSA key fingerprint is MD5:22:14:1c:37:de:47:1c:4a:2f:88:b1:dc:e2:d0:02:17.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.11' (ECDSA) to the list of known hosts.
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 11 (delta 0), reused 11 (delta 0)
Receiving objects: 100% (11/11), done.
[root@linux-node2 ~]# ll
total 68048
-rw-------. 1 root root      948 Dec  3 01:26 anaconda-ks.cfg
drwxr-xr-x  3 root root       62 Dec 21 15:53 app1
-rw-r--r--  1 root root 69675984 Mar  2  2017 jenkins-2.32.3-1.1.noarch.rpm

自动化部署之jenkins发布PHP项目

然后保存,立即构建一次,会拉取master的代码库
自动化部署之jenkins发布PHP项目

点开自动化部署之jenkins发布PHP项目可以看到控制台的输出,如图:
自动化部署之jenkins发布PHP项目

/var/lib/jenkins/workspace/php-deploy目录用于存放代码信息

[root@linux-node2 php-deploy]# ll
total 12
-rw-r--r-- 1 root root 28 Dec 21 16:11 index.html
-rw-r--r-- 1 root root 12 Dec 21 16:11 new.html
-rw-r--r-- 1 root root 19 Dec 21 16:11 readme
[root@linux-node2 php-deploy]# pwd
/var/lib/jenkins/workspace/php-deploy

这里我们拉取的代码需要推送到远程代码目录,需要如下操作:
架设linux-node1为web服务,目录为/data/www/php-deploy

[root@linux-node1 ~]# mkdir /data/www/php-deploy -p
添加node2的免秘钥登陆
[root@linux-node1 ~]# vim .ssh/authorized_keys
[root@linux-node1 ~]# chmod 600 .ssh/authorized_keys 
[root@linux-node2 ~]# ssh 192.168.56.11
Last login: Mon Dec  4 17:41:56 2017 from 192.168.56.1
[root@linux-node1 ~]# 

修改项目设置,配置构建:Execute shell,相当于将代码自动发布到linux-node1的代码目录中。
自动化部署之jenkins发布PHP项目

接下来,我们重新构建一次,并查看控制台输出:
自动化部署之jenkins发布PHP项目

在node1上查看目录,也会有相应的代码信息

[root@linux-node1 ~]# ll /data/www/php-deploy/
total 12
-rw-r--r-- 1 root root 28 Dec 21 16:11 index.html
-rw-r--r-- 1 root root 12 Dec 21 16:11 new.html
-rw-r--r-- 1 root root 19 Dec 21 16:11 readme

[root@linux-node1 ~]#



本文转自 IT_外卖小哥 51CTO博客,原文链接:
http://blog.51cto.com/jinlong/2052977


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
centos下 Apache、php、mysql默认安装路径
apache: 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/apachectl web目录:/var/www/html 如果采用源代码安装,一般默认安装在/usr/local/apache2目录下 php: 如果采用RPM包安装,安装路
2292 0
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 、PHP7.0、Apache服务器 PHP框架:ThinkPHP框架(3.
1646 0
PHP+Mysql高仿百度知道签到源码演示与下载
PHP+Mysql高仿百度知道签到源码演示与下载 演示下载地址:http://www.erdangjiade.
851 0
PHP 把MYSQL重复ID 二维数组重组为三维数组
应用场景 MYSQL在使用关联查询时,比如 产品表 与 产品图片表关联,一个产品多张产品图片,关联查询结果如下: $arr=[['id'=>1,'img'=>'img1'],['id'=>1,'img'=>'img2'],['id'=>1,'img'=>'img3'],['id'=>2,'i...
815 0
PHP实现MySQL并发查询
一般的,一个看似很简单的页面,一次http请求后,到达服务端,穿过Cache层,落到后台后,实际可能会有很多很多的数据查询逻辑!而这些查询实际是不相互依赖的,也即可以同时查询。比如各种用户信息,用户的APP列表,每个APP对应的流量数据、消耗记录、服务状态,平台运行状态,消息通知,新闻资讯等等。
1100 0
PHP项目学习2
通过《PHP项目学习1》基本上可以了解项目的大致结构、内容,现在直接从代码入手,开始coding吧。 现在部署环境中建立一个myonline的文件夹,便于放置我们的项目
574 0
PHP项目学习1
最近在学习PHP,看了《轻松学PHP》,2天看完,学习了很多基础知识,可是没有出什么成果。然后看《PHP项目开发全程实录》,里面讲到一个online影视365网,刚好有一个朋友也要使用PHP做一个视频类的网站,所以我就用这个项目来练练。
1010 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP与APM_技术内幕和最佳实践
立即下载
腾讯包管理系统演进
立即下载
PHP安全开发_从白帽角度做安全
立即下载