日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了...

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  ?在很久之前net還只能在windows上部署的時候,或許很多創業公司的朋友發布項目還都是人肉部署,反正windows都是可視化的界面,拖拖拉拉,開開關關還不

是特別麻煩。。。現如今你的項目需要在linux上部署,可惜的是再也沒有什么可視化的界面給你,全在xshell上操作,如果在xshell上部署個位數的項目大家或許還可

以接受,如果要部署10+以上的服務呢,估計很多人在xshell上敲的頭都大了。。。這就是為什么docker會有dockerfile,會有容器編排的docker-compose,所以找

一款自動化發布工具迫在眉睫了。

?

一: Jenkins部署

  它的官方網址是:https://jenkins.io/download/ ?,使用docker模式部署的話太簡單了,本篇就不用Docker部署,而是直接部署到宿主機Centos上,如下圖:

1. 導入jenkins的key

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

?

2. 使用yum安裝

yum install jenkins

?

3. 啟動jenkins

[root@localhost ~]# service jenkins startStarting jenkins (via systemctl): [ OK ]

?

4. 然后在瀏覽器中輸入你的虛擬機IP: ?http://192.168.23.173:8080,看到下面的界面就算成功了。

  

  然后大家就可以按照步驟一步一步下去就可以了。

?

二:構建你的netcore程序

  先提供一個簡單的test程序,供后續做自動化部署只用。

static void Main(string[] args){ ? ? ? ? ? ?var bgtask = Task.Run(() =>{ ? ? ? ? ? ? ? ?for (int i = 0; i < 1000; i++){Log.Info($"i={i}");Thread.Sleep(1000);}});AppDomain.CurrentDomain.ProcessExit += (s, e) =>{Log.Info($"{DateTime.Now} 恭喜,TestService服務程序已準備退出!");Environment.Exit(0);};bgtask.Wait();}


三:jenkins配置

1. ?點擊新建任務

?

2. 選擇構建一個自由風格的軟件項目,然后點擊確定

?

3. ? 這里的“源碼管理”tab頁是非常重要的,默認支持git和svn,這里就選擇svn了,把你生成svn的地址貼上去,因為后續

? ? ? 執行shell腳本的時候,會在jenkins的workspace文件夾中執行dotnet publish 的。

?

4. 在“構建” tab頁中,最最重要的就是里面的shell腳本。

ps -ef | grep MemSql.Test.dll | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty killcd ./MemSql.Testmkdir -p /data/output/MemSql.Test/v${BUILD_NUMBER} dotnet publish -o /data/output/MemSql.Test/v${BUILD_NUMBER} -c Release cd /data/output/MemSql.Test/v${BUILD_NUMBER} BUILD_ID=dontKillMe nohup dotnet MemSql.Test.dll &

?

? ?這里要關心的幾處是:

???《1》 在kill pid的時候,如果pid不存在,你的默認腳本會報pid不存在的錯誤的,所以加上?--no-run-if-empty ?的if判斷,沒有就

? ? ? ? ? ? ?不執行kill。

? ?《2》 使用了一個Jenkins的一個環境變量 {BUILD_NUMBER} , 也就是下圖中的這個位置,用這個編譯版本號作為文件夾。

?

? 《3》 因為我是用nohup生成后臺進程的,所以要使用dotKillMe命令讓jenkins不要在生成完后kill 它。

?

然后點擊保存,這個Test項目的自動化部署就搞定了。。。

?

四:操作流程

? ? ? ?在操作之前,一定要記得讓 jenkins用戶提升一下權限,否則你的 copy,mkdir可能權限不足,這里我就提升成root權限。

?

1: 把jenkins用戶加入到root組中。

gpasswd -a root jenkins

?

2:修改/etc/sysconfig/jenkins文件, 把原來的 users= jenkins 改成root。

# Unix user account that runs the Jenkins daemon # Be careful when you change this, as you need to update # permissions of $JENKINS_HOME and /var/log/jenkins. # JENKINS_USER="root"JENKINS_GROUP="root"

?

3:重啟Jenkins即可

service Jenkins restart

?

4. 然后你的步驟為:

? ?《1》?在svn中提交代碼。

? 《2》 找到你的所屬項目,點擊“立即構建”。

??

?

? ? 當然也可以讓jenkins自動化構建,但是考慮到生成項目,最好還是加上手工發布這個按鈕,安全可靠,?構建完之后,大家可以看看 jenkins的 “控制臺輸出”。

?

然后你可以通過ftp去生產看一下,果然都跑起來了,v21就是我的編譯版本號,而且你的日志果然就是我的業務邏輯輸出,對吧,如下圖:

?

?

這時候,你覺得代碼有問題,需要修改一下,把i 改成 m ,接下來的步驟也就是 “提交代碼” -> “可視化立即編譯” ?-> ?"查看結果" 這樣的流水線作業而已啦。。。。

?

?好了,本篇就說到這里,希望對你有幫助。

原文鏈接:https://www.cnblogs.com/huangxincheng/p/9608410.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。