方式一:docker方式安裝javascript
拉取jenkins官方鏡像,按照鏡像文檔啓動鏡像就能夠了php
方式二:手動安裝html
如下全部操做都使用 root 用戶進行操做。java
在各項目官網,下載 Java、Tomcat、Jenkinsgit
Java: www.oracle.com/technetwork…
Tomcat: tomcat.apache.org/download-90…
jen
Jenkins: jenkins.io/web
所用環境: jdk1.8.0_121 tomcat-9.0.0.M17 jenkins 2.32.2docker
我把所用的 tar.gz 壓縮包都放在 /opt/ 目錄中,而後解壓到 /usr/local/src 中。shell
安裝 Javaapache
解壓後的 Java 包默認爲 jdk1.8.0_121vim
配置 Java 環境變量 vim /etc/profile
,在其中加入:
#java
JAVA_HOME=/usr/local/src/jdk1.8.0_121 #這行根據實際狀況修改
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar複製代碼
修改完成後使用 source /etc/profile
讓新配置生效。
安裝 Tomcat
解壓後的 Tomcat 包默認爲 apache-tomcat-9.0.0.M17
使用 chmod a+x apache-tomcat-9.0.0.M17/bin/*.sh
命令給予 Tomcat 啓動關閉 shell 腳本可執行權限。
執行 bin/catalina.sh run
能夠從控制檯看到tomcat啓動,以確保 Tomcat 能夠正確啓動。
要讓 Tomcat 在後臺運行使用 bin/startup.sh
安裝 Jenkins
將 jenkins 的 .war 包放到 Tomcat 的 webapps 目錄中,運行 bin/startup.sh
而後就能夠經過 http://<你的ip地址>/jenkins/
訪問安裝完畢的 jenkins
而後按照頁面指引完成最後的安裝
代碼拉取 - 執行檢查(非必須)- 打包 - 遠程或本地部署
部署的方式不少種,jenkins 也提供不少插件優化部署流程
本文檔主要說一下遠程部署
遠程部署首先拉取代碼,咱們使用 git 管理代碼。
用 ssh-keygen 生成公鑰和私鑰,git 和 登陸遠程服務器都會用到。
git 倉庫上每一個項目都有一個部署公鑰,將生成的公鑰添加到 git 倉庫。
而後建立一個自由風格的 jenkins 部署項目,進入配置。
拉取代碼
選擇 git ,默認會拉取倉庫的 master 分支,點擊 add 添加一個拉取代碼的憑證。
Kind 選 SSH Username with private key
Private key 選擇 From the Jenkins master ~/.ssh (已經使用 ssh-keygen 生成公私鑰)
建立完成後選擇憑證,輸入 git 倉庫的地址,而後就能夠保存後點擊當即構建,測試代碼能不能正確拉取,拉取正確後點擊工做空間就能夠看見你的代碼庫中的代碼了。
構建
默認有這些構建選項,本地構建簡單使用 Execute shell 執行 shell 指令。
遠程構建須要新安裝一個插件,在 系統管理-管理插件-可選插件 中搜索 Publish Over SSH 插件並安裝,重啓 Jenkins 以啓用插件。
將本機的公鑰複製到遠程服務器root用戶的 /root/.ssh/authorized_keys 文件中。
而後在 系統管理-系統設置-Publish over SSH
填入私鑰文件地址
增長一個 ssh 服務器配置
構建中選擇 Send files or execute commands over SSH
簡單點能夠直接執行 shell 指令,到想要部署的項目目錄用 git 直接拉取遠程代碼,但這樣用 Jenkins 意義真的不是特別大,能夠在本機將代碼打包,而後傳輸到遠程機器,再解壓開到項目目錄。
cd /var/www/web
tar -czf project_`date +%F-%H-%M-%S`.bak.tar.gz --exclude='project/runtime' --exclude='project/.git' /home/www/web/project
tar xzf /var/www/web/project-tar/project.${BUILD_NUMBER}.${BUILD_ID}.tar.gz -C /home/www/web/project
chmod -R 755 /home/www/web/project/
chmod 777 /home/www/web/project/web/assets/
tail -n100 /home/www/web/project/runtime/logs/error.log複製代碼
以上是一個示例,進行了線上代碼備份打包、解包新部署包,修改權限、打印錯誤日誌一系列操做。
構建打包操做是使用的 Phing 這個工具,有興趣能夠去了解一下這個工具。