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