今天收到一個任務,把現在開發的spring cloud項目做一個自動部署。這個項目下有許多模塊(項目),這些模塊以jar包的形式部署在兩個服務器上。這些jar包並不是獨立的,有些jar包是依賴於一些基礎jar包的(比如:dao.jar,common.jar)。還有就是這些jar包是要部署到兩個服務器。
準備的東西如下:
安裝jenkins的服務器:192.168.2.100
GitLab服務器:192.168.2.50
部署服務器:192.168.2.200,192.168.2.250(分別部署不同的應用)
jenkins簡單理解
jenkins自動部署我理解的就是把git上的項目拿過來部署到服務器,這個過程不再需要開發或運維人員去參與。
下面開始一系列的安裝
1.首先安裝jdk
爲了避免版權問題,使用openjdk,使用yum安裝
[root@localhost ~]# yum install java-1.8.0-openjdk* -y
安裝成功後輸入java -version可以查看安裝的版本(不需要配置環境變量)
問題:使用yum install java-1.8.0-openjdk安裝
如果用這個命令安裝的jdk只有jre,缺少一些其他的組件,重新用上面的命令安裝一邊就可以。
2.安裝jenkins
2.1使用yum安裝(推薦war方式安裝)
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins
安裝成功後修改端口號(安裝成功會給一個密碼,登錄jenkins需要用)
vi /etc/sysconfig/jenkins
參數:JENKINS_PORT="8080"
2.2 war包安裝
下載地址: https://jenkins.io/download/ 選擇Past Releases,可以看到所有版本,選擇一個下載
將下載的jenkins.war放在服務器的某個目錄下(我的位置:/opt/java-jenkins/)
進入此目錄執行命令:java -jar jenkins.war --httpPort=8081,然後就可以訪問jenkins了,(安裝成功會給一個密碼,登錄jenkins需要用),如果想要後臺掛載使用這個命令:nohup java -jar jenkins.war --httpPort=8081 > jenkins.out 2>&1 &
訪問地址:http://服務器ip:8081,會提示輸入密碼,輸入剛纔記下的密碼,頁面如下:
輸入密碼後,選擇默認的插件安裝(第一個)
安裝頁面如下
安裝成功後需要創建一個管理員
創建成功後,進入主頁面
3.主頁面配置
3.1首先需要先添加一個插件
選擇左側菜單 “系統管理” 下的 “插件管理” ,進入如下頁面
第二列是可安裝的,在右上角搜索ssh,可以搜到一個插件
安裝這個插件
3.2對jenkins進行全局配置
選擇左側菜單 “系統管理” 下的 “全局工具配置” ,進入如下頁面
這裏主要需要配置三個,jdk、git、maven
jdk
Name可以自己起一個,JAVA_HOME是上面在服務器安裝的jdk
git
Name就叫git吧,Path 需要填git可執行程序這層路徑,不能只寫到git安裝目錄這一層
git的安裝就不多說了,https://blog.csdn.net/niu15032144758/article/details/86134554,我在這個裏面單獨介紹了。
Maven
maven安裝查一下吧,這個很簡單,幾個命令就搞定了,你肯定沒問題的。
搞定這三個之後保存就行了,有一個注意的地方就是這三個的版本,jdk不能低於1.8,其他的兩個版本也別太低。
3.3系統設置
選擇左側菜單 “系統管理” 下的 “系統設置” 。這裏面主要設置一個東西那就是你要發佈的測試服務器。開篇提到了要jenkins需要把從git獲取到的項目發佈到服務器,jenkins怎麼和服務器通信呢,就在這裏......
首先在我們的jenkins服務器生成一個祕鑰,利用祕鑰免密登錄,隨便一個目錄就行
ssh-keygen -t rsa -C [email protected]
祕鑰生成在/root/.ssh/下,一個私鑰id_rsa,一個公鑰id_rsa.pub
使用cat id_rsa.pub命令查看公鑰,並複製其所有內容。切換部署服務器一,進入目錄cd /root/.ssh/下,可以看到有一個authorized_keys文件,編輯它(vi authorized_keys),在末尾加入複製的公鑰。同樣在部署服務器二加入這個公鑰。
切換到剛纔打開的jenkins配置頁面,進入頁面最底部
Passphrase:你的jenkins賬戶的密碼
Path to key:私鑰的路徑(和key任選一個就行)
key:id_rsa裏面的所有內容
SSH Servers Name:自己給這個服務器起個名字,Hostname:服務器的地址,Username:遠程登錄賬號,Remote Directory:基礎路徑(jenkins往這個服務器傳的時候的基礎目錄)
可以看到這裏是配置的兩個部署服務器(點擊Add可以添加服務器), 分別點擊Test Configuration,如果提示sucess表示配置成功。
到這裏這些配置就先告一段落了,後面就可以開始創建自動發佈任務了,準備了這麼多,終於可以乾點正事了(GitLab會在自動發佈任務裏面配置),先寫到這吧,下一篇再講......