php代码发布系统,通过Jenkins发布php代码

笔记内容:通过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看看是否已安装,一般这个插件都是默认安装的:

fcb0637eb5cde525a323912798a8a003.png

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

a66aedb0a45fadccdd36add6de8f7276.png

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

8c5e1a1350e1c64afa7b1da1a3aa7f95.png

安装完成:

873455cbfeae303e347c85aec36af46f.png

重启Jenkins服务:

systemctl restart jenkins.service

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

124e57ec943ad8b4a8d03f770f172fbe.png

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

[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 identification has been saved in /root/.ssh/jenkins.

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 id_rsa.pub

[root@server ~]#

生成密钥对后,首先把公钥拷贝到远程的机器上去,也就是把公钥的内容粘贴到 .ssh/authorized_keys 文件里,和我们之前配置远程登录的密钥验证是一样的。

拷贝完公钥之后,我们来使用以下命令手动测试一下能否通过ssh登录远程的机器:

ssh -i .ssh/jenkins 192.168.77.128

能正常登录则代表没有问题,如果出现让你出入用户密码的情况则是密钥没有配置成功,配置成功的情况下登录是不需要密码的。

完成测试确保能够正常通过ssh登录远程机器后,接着就是把私钥的内容粘贴到 “Key” 这一栏里:

a59a7687ba6fdceaf5f83433a543fe1f.png

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

ccb364daabd0dcfc417135bbe176bea4.png

注:Jenkins SSH Key 这一栏默认会使用Jenkins管理员admin账户的密码,可以不填则设置为空密码。

以上我们配置完了插件以及远程机器,现在就可以开始新建任务了:

1922cf007bdca8172a0db2caf505ffa8.png

90b935cf1d9ca7bd26365ff99c766e6e.png

配置项目名称与描述:

fd0cd0f9095de1f71050c53a4d74caff.png

配置远程仓库的地址:

c59514754fb869562c17dbbff8f4f4d3.png

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

c1b9581ef2ce6002aa45586b4fbf564e.png

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

5d646e8dbbbd7ed7c981a26bff9e3a51.png

简单说明:

SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件

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

完成以上操作后,就可以使用这个刚刚创建的任务去工作了,点击左面的 “立即构建” ,就能把git上的代码发布到指定的服务器上:

e8754735152fd7909d818aab138c36a6.png

构建中:

af62bfbce7b13d91c7983bba517ed4d8.png

构建完成:

fb471628ff507ea4c129ccff2e2e9b17.png

点击查看输出日志:

1eb922998e3313dfe3e0f9e04d49f606.png

输出日志如下:

b220980ab875eb73fba08b8b87fa656c.png

到远程机器上,看看是否已经存在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。之后只要远程仓库里的源文件的内容发生改变,需要同步到线上则只需要点击该任务的 “立即构建” 即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值