105.发布php代码

26.4/26.5 发布php代码php

扩展:java

1 请同窗们自行建立一个私有git仓库,把discuz代码push进去,并整合到你的jenkins任务里linux

2 动手更改若干php代码文件,而后发布到线上git

3 思考一下,如何回滚?github

 

 

26.4/26.5 发布php代码web

 

 

1.“系统管理”>“管理插件”>“已安装”vim

检查是否有“Git plugin”和“Publish Over SSH”两个插件,若是没有,则需点击“可选插件”,找到它并安装浏览器

2.安装好两个插件后,点击“系统管理” “系统设置”服务器

下拉,找到“Publish Over SSH”ssh

3.事先在一台linux服务器上生成一对密钥

ssh-keygen -f /root/.ssh/jenkins //能够设置密码,也可不设置

4.“Passphrase”填写设置的密码, “Path to key”留空,“key”粘贴/root/.ssh/jenkins文件内容

5.点击左下角“增长”,SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/

6.若是是多台web server,继续点击“增长”,重复以上操做

7.点左下角的“保存”

8.点击“新建”,任务名称自定义,好比test,选择“构建一个自由风格的软件项目”点击下方的“肯定”

9.描述,自定义

10.“源码管理”选择 “Git”

“Repository URL”填写你项目的git地址,若是是公共项目能够不设置下面的参数,直接填写一个git地址便可,如果私有项目,须要填写认证信息,好比能够选择 “SSH Username whith private key”,而后设置Username以及private key

“Branches to build” 默认为*/master,意思是发布的分支为master,保持默认

11.“构建触发器”和“构建环境”留空

“构建”,选择 “Send files or execute commands over SSH”

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

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

12.最后点击左下角的“保存”

13.完成以上操做后,就可使用这个刚刚建立的任务去工做了。

14.点击左面的“当即构建”,就能把git上的代码发布到指定的服务器上。

15.点击左下角的#1/#2… ,而后再点击 “Console Output”能够查看输出日志

 

 

 

实例:

 

 

 

 

 

[root@axinlinux-01 ~]# cd /root/.ssh/ #由于咱们以前已经生成过密钥对了,就不用ssh-keygen -f /root/.ssh/jenkins来生成了(-f指定他的文件名)。直接使用这对密钥就能够了

[root@axinlinux-01 .ssh]# ls

authorized_keys id_rsa id_rsa.pub known_hosts

 

 

 

[root@axinlinux-02 ~]# vim .ssh/authorized_keys #在浏览器上设置了私钥,要去访问远程机器的时候,远程机器上也要有公钥才对。将服务器生成的公钥放在远程机器(02机器)的这

#####axinlinux-01jenkins

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXXjoeyXRbpHSwxJa8kvnGev9HV7xqHfQxxVL711ypsMMaKGlpcRVGhRWNkfzS37W0jAfnVZJX3/nSD2BEcrmqmPAxRG48+OZMBhEqh6g6KeCe0JgOA0azm/gpujrrcRNLxbVsT6dTGiRzxfvAG2OPqwOCWN/a3QMPXpdd2IDVTSAw0GMDBYUpr+tHu1DzeVogt5wvdkcBAtb9+caDAAWM0uZLLlG/mZ+Zm2FqX7j8J9LPpy2LIeJF0OBbzeFHMHT1zdUkpLBL5FQSmQ2hrwweT3iqcBXB/A7MNQNan7SFAW4vj7LiUWuxA301RBHuY8e9sS74nLb9lJZds1yle5Hz root@axinlinux-01

[root@axinlinux-01 .ssh]# ssh 192.168.208.130 #咱们直接远程ssh02,是能够登的

Last login: Thu Dec 20 20:44:43 2018 from 192.168.208.1

回到浏览器上

继续增长一台ssh server

[root@axinlinux-02 .ssh]# vim authorized_keys #将公钥放到须要添加机器的authcrized_keys里去

最后在点击保存

插件及机器配置完成之后,开始建立任务

 

 

以上,Repository URL这里写的是你最新代码的地址,就是取哪里获取。生产环境中可使用github或者gitlib代码管理平台里,项目的地址。如今实验就用了coding.net里的非代码平台的地址

Credentials这里是none(无),就是说好比我弄了个私有仓库,这个仓库只有我才能访问,须要你增长用户名密码或者密钥,才能去克隆。须要在后面添加一些用户密码等等。后面章节java项目会有讲到

以上图,是如何拷贝实验用的URL(源码地址)。生产环境使用gitlib等的地址

php是不须要构建触发器(何时去触发这个任务)和构建环境的。好比咱们用的是java的代码,你克隆出来之后是开源的源码的,还须要去打包、编译才能去发布。php自己就是源码的因此不须要

以上,name选择好比axin-01机器

source files就是你把代码拉下来以后,要发布哪些代码。**/**这个就是所有的意思

remote directory就是你把代码发布到远程什么目录下去

以上,保存以后。就能够构建了

任务完后以后。咱们要把代码发布到对方机器上去

查看他最后的输出结果是否是Finished: SUCCESS。发现报错了:

 

 

在回到linux上,查看

[root@axinlinux-01 .ssh]# ls /tmp/jenkins_test/

D11Z D12Z D13Z D14Z D15Z D17Z D18Z D19Z D20Z D21Z D22Z LICENSE README.md 习题答案.txt

[root@axinlinux-01 .ssh]# ls -l !$

ls -l /tmp/jenkins_test/

总用量 100

drwxr-xr-x 2 nobody nobody 66 12月 20 22:14 D11Z

drwxr-xr-x 2 nobody nobody 260 12月 20 22:14 D12Z

drwxr-xr-x 2 nobody nobody 24 12月 20 22:14 D13Z

drwxr-xr-x 2 nobody nobody 4096 12月 20 22:14 D14Z

drwxr-xr-x 2 nobody nobody 4096 12月 20 22:14 D15Z

drwxr-xr-x 2 nobody nobody 25 12月 20 22:14 D17Z

drwxr-xr-x 2 nobody nobody 76 12月 20 22:14 D18Z

drwxr-xr-x 2 nobody nobody 155 12月 20 22:14 D19Z

drwxr-xr-x 2 nobody nobody 83 12月 20 22:14 D20Z

drwxr-xr-x 2 nobody nobody 200 12月 20 22:14 D21Z

drwxr-xr-x 2 nobody nobody 128 12月 20 22:14 D22Z

-rw-r--r-- 1 nobody nobody 18044 12月 20 22:21 LICENSE

-rw-r--r-- 1 nobody nobody 419 12月 20 22:21 README.md

-rw-r--r-- 1 nobody nobody 66243 12月 20 22:21 习题答案.txt

[root@axinlinux-02 .ssh]# ls /tmp/123456/

D11Z D12Z D13Z D14Z D15Z D17Z D18Z D19Z D20Z D21Z D22Z LICENSE README.md 习题答案.txt

[root@axinlinux-02 .ssh]# ls -l !$

ls -l /tmp/123456/

总用量 100

drwxr-xr-x 2 nobody root 66 12月 20 22:14 D11Z

drwxr-xr-x 2 nobody root 260 12月 20 22:14 D12Z

drwxr-xr-x 2 nobody root 24 12月 20 22:14 D13Z

drwxr-xr-x 2 nobody root 4096 12月 20 22:14 D14Z

drwxr-xr-x 2 nobody root 4096 12月 20 22:14 D15Z

drwxr-xr-x 2 nobody root 25 12月 20 22:14 D17Z

drwxr-xr-x 2 nobody root 76 12月 20 22:14 D18Z

drwxr-xr-x 2 nobody root 155 12月 20 22:14 D19Z

drwxr-xr-x 2 nobody root 83 12月 20 22:14 D20Z

drwxr-xr-x 2 nobody root 200 12月 20 22:14 D21Z

drwxr-xr-x 2 nobody root 128 12月 20 22:14 D22Z

-rw-r--r-- 1 nobody root 18044 12月 20 22:21 LICENSE

-rw-r--r-- 1 nobody root 419 12月 20 22:21 README.md

-rw-r--r-- 1 nobody root 66243 12月 20 22:21 习题答案.txt

 

若是咱们有对代码作改动,改动以后,直接点当即构建就能够了。就会自动的发布到远程机器上去

相关文章
相关标签/搜索