知方号

知方号

jenkins 实现PHP持续集成部署

安装jenkins相关依赖

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo  rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key  yum install jenkins  yum install java  yum install java-1.8.0-openjdk  yum install php  yum install php-devel  yum install php-pear  yum install re2c  yum install php-pear-phing 

jenkins配置和启动

service jenkins start  输入localhost:8080即可访问。

插件安装

系统管理-插件设置  安装以下插件  Phing(php构建工具)  Publish Over SSH Plugin(通过ssh发布代码)

配置SSH免登录

假设有两台服务器。A为发布机,即jenkins所在机器。B为应用服务器,即运行PHP的服务器。  首先在A服务器生成公私钥。 ssh-keygen -t rsa

这时.ssh目录下会生成私钥和公钥的键值对id_rsa,id_rsa.pub

将id_rsa.pub公钥复制到B服务器上,并重命名为authorized_keys。 scp ~/.ssh/ras.pub root@B:/root/.ssh/authorized_keys

这时候ssh到B服务器则无需登录密码。 ssh root@B

注:若生成RSA密码的时候设置了ssh key,SSH到B服务器的时候还需要输入相应ssh key。

配置Publish Over SSH Plugin

系统管理—系统设置 

Jenkins SSH Key:生成rsa的时候设置的ssh key,若没有设置则留空。  Key:填上A服务器私钥的内容。默认路径 ~/.ssh/id_rsa  Hosename:填上B服务器的IP  username:填上B服务器的帐号

配置phing build.xml

进入当前job的项目目录 cd /var/lib/jenkins/workspace/git 

build.xml文件内容如下

123456789101112131415161718192023222324252627282930313233343536373839

这里我们只做简单发布,没有加入php-unit等插件。

开始构建项目

新建—输入项目名称,选择构建自由风格的软件项目—下一步

配置源码管理

这里我们用的是GIT 

增加构建步骤,选择Invoke Phing targets,再新增一个构建步骤,选择Send files or execute commands over SSH 

Phing targets配置如下 

Send files or execute commands over SSH 配置如下

Source files:dist/api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz  Remove prefix:dist/  Remote directory: /home/data/  Exec command:  mkdir -p /home/data/  mkdir-p /home/www/  cd /home/data/  tar -zxf api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz -C /home/www/  /home/data/ 为B服务器接收打包文件的目录  /home/www/ 为B服务器PHP项目运行的目录

保存即可。

接下来进入项目–立即构建,完成后我们进入B服务器。 cd /home/data 

至此已经大功搞成了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。