专业的编程技术博客社区

网站首页 > 博客文章 正文

netcore+Jenkins环境配置指导(.net core jvm)

baijin 2024-08-18 13:30:17 博客文章 6 ℃ 0 评论




前言:

Jenkins 是一款开源的 CI&CD 软件,用于自动化各种开发任务,包括构建、测试和部署软件等。支持docker、windows、linux 系统,下面让我们用一张图了解一下:



Jenkins就像是你刚买的一部手机,手机本身没有太多的APP,需要你自己根据需求去下载安装你想要的应用软件。有些人的生产环境是JAVA、PHP、Python、C#等,所在的jenkins的配置有所不同,但原理都是一样。下面我们着重讲解C#环境下的配置及使用方法。

参考来源:

https://www.jenkins.io/zh/doc/

https://www.w3cschool.cn/jenkins/

1、 准备工作

1. java sdk 1.8版本

2. 下载 Jenkins

3. 部署服务器需要安装netcore sdk2.1以上、git工具。安装这2个软件

1.1安装方法

安装Jenkins windows软件包,

安装后打开页面如下:



默认密码的位置:用浏览器打开即可

C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\secrets\initialAdminPassword

打开后将密码复制到上面中点击继续,选择第一个安装推荐的插件:



安装所有推荐的插件



安装后创建一个管理员用户,


配置 jenkins URL:这里可以是默认的localhost:8080




1.2 admin密码更改忘记情况

如果权限丢失,请删除这里面所有的文件,重新安装

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\(这里是默认安装后的jenkins的工作路径,后面内容讲解如何修改默认路径

获取请自行百度去查找 修改config.xml

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\ config.xml

第一次安装成功后,建议把admin的相关配置都备份一遍,防止后面修改权限时admin权限丢失(下面的路径全部备份)

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\


1、删除Jenkins目录下config.xml文件中下面代码,并保存文件。

<useSecurity>true</useSecurity>

<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">

<denyAnonymousReadAccess>true</denyAnonymousReadAccess>

</authorizationStrategy>

<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">

<disableSignup>true</disableSignup>

<enableCaptcha>false</enableCaptcha>

</securityRealm>



<useSecurity>true</useSecurity>

<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">

<denyAnonymousReadAccess>true</denyAnonymousReadAccess>

</authorizationStrategy>

<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">

<disableSignup>true</disableSignup>

<enableCaptcha>false</enableCaptcha>

</securityRealm>

1.3修改默认的工作空间

· 添加环境变量




· 前往默认安装的jenkins目录中把需要保留的配置内容复制出来
C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkin
如果找不到 一般在这里
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins.jenkin

· 如果是直接安装的jenkins需要到安装目录修改配置
比如D:\Program Files\Jenkins\Jenkins.xml


修改成这样


最后把刚刚从这个路径(

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkin)备份下来的文件拷贝到新建的路径中去(下面圈出来的路径):


打开windows服务,搜索jenkins,右击重启服务。

1.4环境变量

nuget相关环境变量配置 这一步可以忽略不一定需要

增加环境变量


然后在job中设置环境变量





继续配置全局环境变量,并应用到msbulid的参数中去


1.5下载.NET sdk

https://download.visualstudio.microsoft.com/download/pr/674a9f7d-862e-4f92-91b6-f1cf3fed03ce/e07db4de77ada8da2c23261dfe9db138/dotnet-sdk-5.0.103-win-x64.exe

这里需要下载NET 2.1SDK以上的版本 我这里推荐直接安装.Net 5.0 sdk.

可以先用cmd 命令 查看自己是否已经安装好:dotnet sdk –version


为什么这里要安装这个sdk,因为后面的execute shell 需要执行dotnet 的相关命令,相关文档是:https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet


1.6安装git 工具

为什么要安装git工具?因为下文中对job的配置环节中有一个execute shell 需要执行dotnet 相关命令,有人会问为什么dotnet 的相关命令不能用power shell 进行编译和发布,目前尝试过,无法编译通过,这条路行不通,只能使用execute shell 进行执行命令。(这里解释一下为什么要安装git才能去在windows中执行execute shell,因为execute shell是linux才能执行的,windows默认不支持,git中自带这个功能,因此要安装git)

下面是安装git的相关截图:

首先打开GitExtensions-2.48.03-SetupComplete.msi 安装这个软件



下一步


下一步


下一步


下一步


下一步


下一步直接安装,随后有弹窗,点击OK


下一步








下面是核心的git安装,继续…











2. 安装必要插件


进入后台后需要自己安装插件


2.1这里整理所有需要提前安装的插件

SSHPublish Over SSH、build environment、MSBuild Plugin、 Role-based Authorization Strategy、 Gitlab(不需要用的可以不安装)、 PowerShell pluginEnvironment Injector Plugin、 Nuget Plugin、 Workspace Cleanup Plugin、Branch API Plugin、workspace cleanup、NodeJS、Simple Theme/ material-theme


我这里需要安装gitlab相关插件(因为我要从gitlab中获取代码,不需要的朋友可忽略安装),那么下面将搜索到的相关的gitlab插件全部选中安装。

2.2安装SSH、Publish Over SSH、PowerShell插件(最重要)



2.3安装MSBuild Plugin插件 这步可以省略

打开 Jenkins 系统管理,找到管理插件选项,点击进入,切换到可选插件选项卡在搜索框输入 MSBuild 搜索。在搜索结果中找到 MSBuild 插件并安装。




配置 MSBuild

打开 Jenkins 系统管理,找到 Global Tool Configuration 选项,点击进入。找到 MSBuild 并配置如下

Msbuild 路径 备份下来,后面job配置需要用到:

D:\Program Files\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe

MSBuild 的一般路径是自己安装vs软件的路径(我安装的是vs2019,上面的Msbuild 路径已经介绍)。



将自己的路径填入即可。

2.4安装Role插件,并配置相关权限

配置 jenkins 权限管理:基于角色的权限管理,先创建角色和用户,给角色授权,然后把用户管理到角色。


更改认证方式:

Jenkins —> 系统管理 —> 全局安全配置

默认创建的用户登录后可以做任何操作,取决于默认的认证授权方式。




创建新用户:

Jenkins ---> 系统管理 ---> 管理用户:





创建角色:

Jenkins —> 系统管理 -> Manage and Assign Roles


添加角色:


对角色分配权限:


将用户关联到角色:


测试普通用户登录: (建议先不要退出jenkinsadmin账号,换个浏览器登陆)


登录成功之的界面,没有系统管理权限,只能执行被授权过的 job 且没有了管理员权限。


配置 jenkins 管理员邮箱:

Jenkins —> 系统管理 —> 系统设置



测试发送邮件


如果代码仓库是GIT,那么请提前安装和git相关工具,我这里用的是Git Extensions,安装后自己百度去生成ssh的公钥和私钥,网上很多。

生成后到目录C:\Users\Administrator\.ssh 中找到id_rsa 复制出私钥

配置 jenkins 自动拉取代码:

jenkins 服务器添加证书:

Jenkins -> 凭据 -> jenkins —> 全局凭据 —> 添加凭据






以上步骤如果验证失败可以直接添加gitlab账户和相关ssh秘钥即可

3.5安装build environment


3.6安装Environment Injector

3.7 安装workspace cleanup插件


3.8安装Simple Theme / material-theme更换主题

参考:http://afonsof.com/jenkins-material-theme/ 可以在线生成主题

https://blog.csdn.net/DynastyRumble/article/details/103910441 要用这个

https://www.pianshen.com/article/51701037320/ material-theme更换主题


http://localhost:8080/userContent/layout/jenkins-material-theme.css
http://localhost:8080/userContent/layout/title.css

3.配置job项目(c# 后端)

3.1新建项目

点击新建item


输入项目名称、选择模式。


3.2配置源代码的来源


这里我选择的是git,对于下面的RUL和全局凭证,请参考2.4全局凭证设置,如果看不懂,我这里再截图提供说明:


选择 strores scoped to Jenkins


选择全局凭证


选择添加凭证



3.3构建环境配置


其中构建环境可能需要用到nuget,我提前在环境变量中添加了



至于为什么要加这里面涉及的内容太复杂,这里简单描述一下:

每个研发人员的账户下都会产生一个默认的nuget包目录,每个人员的路径不一致,那么到服务器上通过jenkins来编译代码的时候需要一个统一的nuget包路径,因此这里做了一个全局的配置路径。

那么这里需要添加相关环境变量


3.4构建

3.4.1先添加一个execute shell


dotnet restore

dotnet clean

dotnet build

dotnet publish -o publish

3.4.2再添加一个powershell


#Step1: 設定來源目錄

$SourceFolder = "D:\JenkinsWorkSpace\Jenkins\.jenkins\workspace\MicNetCore\publish"

#Step2: 設定覆蓋到IIS WebSite的目錄上

$DestinationFolder = "D:\Project\NewNetCoreNfine\publish"

#Step3:設定需要排除的文件(作废 不能排除文件夹,只能排除文件)

#$ExcludeItems = @("appsettings.json","web.config","\wwwroot\","\logs\")

#这个可以排除文件夹和文件

$ExcludeItems = "D:\JenkinsWorkSpace\Jenkins\.jenkins\workspace\exclude\exclude_NewNetCoreNfine\exclude.txt"

#Step4:設定备份压缩的文件路径

$CurrentTime =Get-Date -Format 'yyyyMMddHHmmsssss'

$ZipFolder = "D:\Project\NewNetCoreNfine\"+$CurrentTime+".zip"

#Step5:停止IIS程序池和站点

C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"NewNetCoreNfine"

C:\Windows\System32\inetsrv\appcmd.exe stop site /site.name:"NewNetCoreNfine"

Write-Host 'IIS应用程序池停止准备复制代码...'

#Step6: 压缩原项目文件,以时间格式打包

#将文件或文件夹test压缩为test.zip

Compress-Archive -Path $DestinationFolder -DestinationPath $ZipFolder

#将文件test.zip解压到test目录下 这个暂时不需要

#Expand-Archive -Path E:\test.zip -DestinationPath F:\test

#Step7: 執行資料夾覆蓋 【-Recurse】包含子資料夾底下的內容 【-force】強制覆蓋

#Copy-Item -Path $SourceFolder -Recurse -Destination $DestinationFolder -Exclude $ExcludeItems -force

#xcopy "D:\JenkinsWorkSpace\Jenkins\.jenkins\workspace\MicNetCore\publish" "D:\Project\NewNetCoreNfine\publish" /s/e/y/exclude:D:\JenkinsWorkSpace\Jenkins\.jenkins\workspace\exclude\exclude_NewNetCoreNfine\exclude.txt

xcopy $SourceFolder $DestinationFolder /s/e/y/exclude:$ExcludeItems

Write-Host '代码已覆盖...'

#Step8: 启动IIS程序池和站点

C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"NewNetCoreNfine"

C:\Windows\System32\inetsrv\appcmd.exe start site /site.name:"NewNetCoreNfine"

最后要勾选这个


3.4.3使用方法(构建项目)



点击正在构建的项目,如下图:


点击控制台查看编辑结果


3.5对job增加权限

https://blog.csdn.net/xuhailiang0816/article/details/80307523




系统设置 >> Manage and Assign Roles



下面要对job加权限



3.6构建后操作




添加成功后


这里面的高级选项内容默认即可


我这里勾选了无论什么情况都清除工作空间,给服务器腾空间。

4.配置job项目(前端)

https://blog.csdn.net/zhenghongcs/article/details/103708108

http://www.mamicode.com/info-detail-3032198.html

执行shell命令

#列出当前的npm,node版本(只起个提示作用)

npm -v

node -v

#安装node-sass

SASS_BINARY_SITE=https://npm.taobao.ort/mirrors/node-saas/ npm install node-sass

#执行项目中的npm 安装完成后打包。

npm config set registry https://registry.npm.taobao.org

npm install

npm run build

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表