安裝
jdk
1.查看是否安裝了jdk
[root@10-0-59-231 data]# java -version # 查看是否安裝jdk,沒有則要安裝
-bash: java: 未找到命令
2.搜索可用包
yum search java |grep -i --color JDK
3.安裝jdk
yum install java-1.8.0-openjdk* # 安裝1.8 openjdk
4.查看
java -version
#輸出
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
PS:yum自動配置了環境變量,可以通過 vim /etc/profile 查看
jenkins
1.centos 7 下安裝
yum install jenkins
2.更改默認端口號和git clone代碼存放目錄
vim /etc/sysconfig/jenkins
JENKINS_PORT="8088" # 默認8080
JENKINS_HOME="/data/jenkins" # 默認 /var/lib/jenkins
systemctl daemon-reload # 使得配置生效
3.啓動
systemctl restart jenkins # 重啓
chkconfig jenkins on # 開機啓動
配置
1.新建任務
2.輸入名字,選擇自由風格軟件。
3.General,勾選丟棄舊的構建
4.設置代碼倉庫。我們使用的gitlab,所以勾選Git,然後貼入代碼倉庫地址,Credentials添加一個有權限的用戶。
Branch Specifier:默認是從Master拉代碼編譯,我們一般發佈是release,所以這裏使用 release 分支。
5.構建觸發器。這個不用設置,用不到。
6.構建環境。暫時用不到,跳過。
7.構建。點擊“執行shell“,調用build.sh腳本完成源代碼的編譯工作,具體見下一節。
8.構建後。點擊“Send build artifacts over SSH”,通過ssh把編譯的包發佈到遠程機器上,具體見後面。
構建
1.構建腳本。
cd ${WORKSPACE} && cd server/paas_build
chmod 777 build_db_proxy_server.sh
./build_db_proxy_server.sh
cd ../
echo 'tar ${pwd}/online.base.im/'
tar -czvf online.base.im.tar.gz online.base.im/
這裏打包壓縮一下,便於後續的拷貝分發。
2.測試構建。
點擊立即構建,然後在下面可以看到構建進度,再點擊,查看具體構建結果。
分發
新增SSH Servers
PS:本地編譯好程序後,還需要拷貝到的目標機器上運行,才完成整套流程。
點擊系統管理->系統設置,拉到最下面。找到SSH Servers,點擊後面的新增。
輸入相關信息,其中Remote Directory,需要預先創建。推薦在/data/apps等目錄。該目錄代表了,後續把文件拷貝到機器上的根目錄。然後點擊高級設置密碼後,點擊“Test Connfiguration”,確保配置沒問題。
如果有多臺機器,多次add即可。
發佈腳本
1.構建完成後,需要通過腳本執行一些安裝動作,點擊“Send build artifacts over SSH”。
2.選擇一個服務器。相對於WorkSpace,我的包在server/online.base.im.tar.gz位置。
Remove prefix:需要移除的前綴,如果不設置。假設SSH Servers設置的Remote Directory爲/data/webapps,則該壓縮包拷貝後的路徑爲:/data/webapps/server/online.base.im.tar.gz。
Exec command:需要執行的命令。執行前請設置一下當前工作目錄,比如cd /data/webapps。
附腳本:
kill -9 $(pidof db_proxy_server) # 停止進程
sleep 5 # 等一會
cd /data/webapps/
# 備份原程序
mv online.base.imdbproxyserver.service online.base.imdbproxyserver.service.$(date "+%Y%m%d")${BUILD_NUMBER}
tar -zxvf online.base.im.tar.gz
rm -rf online.base.im.tar.gz
mv online.base.im online.base.imdbproxyserver.service
cd online.base.imdbproxyserver.service
cd db_proxy_server
mv libhiredis.so.0.13 libhiredis.so.0.12
ln -s /data/webconf/dbproxyserver.xml dbproxyserver.xml
cd ../
chmod 777 *.sh
./restart.sh db_proxy_server
重新構建
此時要不停的調整腳本,直到顯示成藍色的球爲止,代表中間過程一切順利,沒有錯誤。然後就實現了:
- 從gitlab自動拉取最新代碼
- 編譯
- 自動部署集羣
看一下效果:
PS:如果需要發佈到多個機器,在“構建後”裏面在添加一個SSH Server即可。
關於
CSDN關於作者
推薦下自己的開源IM,純Golang編寫:
CoffeeChat:
https://github.com/xmcy0011/CoffeeChat
opensource im with server(go) and client(flutter+swift)
參考了TeamTalk、瓜子IM等知名項目,包含服務端(go)和客戶端(flutter+swift),單聊和機器人(小微、圖靈、思知)聊天功能已完成,目前正在研發羣聊功能,歡迎對golang和跨平臺開發flutter技術感興趣的小夥伴Star加關注。
————————————————
版權聲明:本文爲CSDN博主「許非」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xmcy001122/article/details/105665732
參考:https://www.jianshu.com/p/5f671aca2b5a
參考:http://www.linuxboy.net/linuxjc/144365.html