Jenkins+GitLab+dotnet+Python自动化部署.Net Core项目
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Jenkins+GitLab+dotnet+Python自动化部署.Net Core项目,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3795字,纯文字阅读大概需要6分钟。
内容图文
- 部署环境与流程
1) Jenkins是java产品,需安装JDK8。由于.netFreamwork项目自动化时是基于Windows,所以继续使用Windows server 2012环境下的已有的Jenkins,部署、构建dotnet Core项目继续在Windows平台下操作。
2) .NET Core SDK:2.2.402。dotnet build构建。
3) 代码仓库GitLab。
4) .NET Core服务端CentOS7
部署环境流程: - 需求
一个项目下分两个子项目,而子项目需分别进行构建部署,构建后分子项目分别同步到不同的server上。所以,计划Jenkins上创建三个Job:A、B、C。A、B分别表示子项目,C分环境统一管理A、B。即C作为A、B的构建入口。C-Job中上按参数选择构建应用,会触发对应的Job-B或Job-C构建,实现思路是python调用JenkinsAPI去实现,后面会具体讲到。大致流程为: - Jenkins操作
1) Jenkins具体安装略。下载见官方网站:https://jenkins.io/download/ ,选择安装Windows版本。
这里Jenkins安装前,需配置好JDK环境。
2) 插件安装
Jenkins安装好后,进入系统管理->插件管理,安装好Msbuild、GitLab、ftp、python等。
Jenkins+GitLab+Msbuild+Python自动化部署.Net项目
Jenkins+GitLab+Msbuild+Python自动化部署.Net项目
3) 新建Job-A
列出Job中主要设置项。
Gitlab代码仓库和分支配置如下:
构建build:
build前新建“Exceute Windows batch command”,如下图:
build命令dotnet restore "%WORKSPACE%\PreventFraudAPI.Server" dotnet build "%WORKSPACE%\PreventFraudAPI.Server" dotnet publish "%WORKSPACE%\PreventFraudAPI.Server\PreventFraudAPI.sln" -o "E:\Publish-web\PreventFraudAPI-test\PreventFraudAPI.Server"
Build构建完后,再新建“Exceute Windows batch command”,从gitlab中拉取项目文件配置项,是gitlbab中集中存放。将集中配置项文件copy到项目构建后的目录中。
配置文件操作完后,需将Jenkins平台下已构建完后的项目文件同步到.NET Core服务器端CentOS上。涉及Windows和Linux不同的OS间交互问题,这里选择Python实现,主要作了服务器端dotnet应用服务操作、应用程序备份、代码同步等。
E:\Python-scripts\test\PreventFraudAPI-test2.py代码细节如下:import sys import paramiko class SSHconnection(object): def __init__(self, host, port, username, password): self._host = host self._port = port self._username = username self._password = password self._transport = None self._client = None self._connect() #建立connect连接 def _connect(self): transport = paramiko.Transport((self._host, self._port)) transport.connect(username=self._username, password=self._password) self._transport = transport def exec_command(self, command, step): if self._client is None: self._client = paramiko.SSHClient() self._client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self._client._transport = self._transport stdin, stdout, stderr = self._client.exec_command(command) data = stdout.read() print('%s 执行结果: ' % step) print(data.decode('utf-8')) # #输出结果 # if len(data) > 0: # print('执行结果:') # print(data.decode('utf-8')) err = stderr.read() #输出错误结果 if len(err) > 0: print('%s 执行的错误输出:' % step) print(err.decode('utf-8')) #关闭close连接 def close(self): if self._transport: self._transport.close() if self._client: self._client.close() if __name__=="__main__": host = "10.10.10.75" port = 65089 username = "root" password = "password" cmd_stop = "systemctl stop supervisor" cmd_backup = "cp -r /usr/soft/package/HiCore.PreventFraudAPI.Web/ /usr/soft/backup/HiCore.PreventFraudAPI.Web-`date +%Y-%m-%d-%H:%M`" cmd_rsync = "rsync -vzrtopg --no-super --numeric-ids --progress --port=873 --password-file=/opt/scripts/passwd.sh rsync_user@10.10.10.69::PreventFraudAPI-test /usr/soft/package/HiCore.PreventFraudAPI.Web/" cmd_start = "systemctl start supervisor" conn = SSHconnection(host, port, username, password) print('开始停supervisor服务...') conn.exec_command(cmd_stop, 'supervisor_stop_service') print('开始备份本地PreventFraudAPI程序...') conn.exec_command(cmd_backup, 'backup_app') print('开始同步PreventFraudAPI程序...') conn.exec_command(cmd_rsync, 'rsync_app') print('开始启supervisor服务...') conn.exec_command(cmd_start, 'supervisor_start_service') print('PreventFraudAPI程序发布完成,请验证!')
4)
内容总结
以上是互联网集市为您收集整理的Jenkins+GitLab+dotnet+Python自动化部署.Net Core项目全部内容,希望文章能够帮你解决Jenkins+GitLab+dotnet+Python自动化部署.Net Core项目所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。