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
若是咱們有對代碼作改動,改動以後,直接點當即構建就能夠了。就會自動的發佈到遠程機器上去