31°

26.4/26.5 发布php代码

26.4/26.5 发布php代码

扩展:

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

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

3 思考一下,如何回滚?

 

 

26.4/26.5 发布php代码

 

 

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

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

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

下拉,找到“Publish Over 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

 

如果我们有对代码做改动,改动之后,直接点立即构建就可以了。就会自动的发布到远程机器上去

 

本文由【oschina130111】发布于开源中国,原文链接:https://my.oschina.net/u/3866192/blog/3160337

全部评论: 0

    我有话说: