jenkins+gitlab+ansible-tower实现发布

2024-05-07 12:04

本文主要是介绍jenkins+gitlab+ansible-tower实现发布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前提准备:
gitlab中上传相应的jenkinsfile文件和源码。
安装和破解ansible-tower。
安装jenkins。
大致流程:从gitlab中拉取文件,存放到windows机器上,使用nuget等进行打包到windows中,使用sshPublisher语句传输到远程ansible-tower的机器上,打包传输完成后,使用ansible-tower进行发布。
机器分布:
jenkins:192.168.50.155 gitlab:192.168.50.156 ansible-tower:192.168.50.157
后端服务器:192.168.50.154 192.168.50.155
1.jenkins中的配置
第一步:配置gitlab的用户名和密码
在这里插入图片描述
在这里插入图片描述
第二步:新建项目item
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三步:得到的界面
在这里插入图片描述
2.配置Nodes.配置window机器将项目打包
在这里插入图片描述
配置好后,还需要在节点windows服务器中执行相关的命令,才能建立连接。参考
https://blog.csdn.net/weixin_41238626/article/details/137828742
3.配置远端ansible-tower服务器相关
参考 https://blog.csdn.net/qq_25646191/article/details/109103252
需要安装Publish over SSH插件。输入密码后可以点击右下角进行测试 test configuration
在这里插入图片描述
4 在打包机器上安装dotnet版本
需要安装dotnet环境
https://download.visualstudio.microsoft.com/download/pr 需要配置环境变量
安装 nuget 需要配置环境变量
安装vs https://c2rsetup.officeapps.live.com/ 工作负载选择ASP.NET和Web开发、.NET桌面开发
参考:https://www.cnblogs.com/sgxw/p/15607574.html
proget 8624端口部署–》安装
参考: https://www.cnblogs.com/zerodai/p/10796535.html
5 测试查看是否能够打包已经是否能够传输到ansible-tower中
在这里插入图片描述
在这里插入图片描述
Jenkinsfile文件内容

pipeline{parameters {string defaultValue: '', description: 'tag', name: 'Tag', trim: falsechoice choices: ['class-assistant-linux-pr', 'class-assistant-linux'], description: '', name: 'TARGET_HOST'choice choices: ['Release', 'Publish', 'Alpha', 'Debug'], description: '', name: 'Configuration'
}agent nonestages{stage("build"){agent {label "win-110-88"}steps("first steps"){bat 'nuget.exe restore .\\src\\ClassAssistant.sln -Source http://192.168.60.216:8624/nuget/Proget/'bat 'dotnet publish .\\src\\ClassAssistant.Apis\\ClassAssistant.Apis.csproj --force -o ./publish/publish --configuration %Configuration%'powershell 'Get-ChildItem -Path $ENV:WORKSPACE/publish/publish/* -Include appsettings.*,log4net.config -Recurse | Remove-Item'bat '''cd %WORKSPACE%\\publish\\publish\\"C:\\Program Files\\7-Zip\\7z.exe" a   ..\\latest.zip .'''archiveArtifacts '/publish/*.zip'}}stage("sendfile and ansible job"){agent {label "win-110-88"}steps("sendfile steps"){sshPublisher(publishers: [sshPublisherDesc(configName: 'ansible-50.157', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/${TARGET_HOST}/', remoteDirectorySDF: false, removePrefix: '/publish', sourceFiles: '/publish/*.zip')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}}
}

6 ansible-tower中中进行相关配置配置发布
参考:https://blog.csdn.net/qq_48736646/article/details/137777740
ansible剧本内容

class-test.yaml
---
- name: iis pull latest.zip and updatehosts: class-assistant-linuxgather_facts: falsemax_fail_percentage: 100serial: 2vars:PATH: class-assistant-linux#group "group:" 重启group需要加:  program program重启单个项目直接写项目名称AppPool: core-class-assistant-linuxvars_files:- ./extend_vars.yamlroles:- update
extend_vars.yaml
iis_path:class-assistant-linux:192.168.50.154:- "/opt/class-assistant-linux"192.168.50.155:- "/opt/class-assistant-linux"
hosts:
[class-assistant-linux]
192.168.50.154
192.168.50.155update/tasks/main.yml
---
- name: url get fileshell: scp -o StrictHostKeyChecking=no root@192.168.50.157:/data/win_iis/{ PATH }/latest.zip /tmp/{{ PATH }}_latest.ziptags: update
- name: unzip fileshell: sudo unzip  -q -o /tmp/{{ PATH }}_latest.zip -d {{ item }}with_items: "{{ iis_path[PATH][inventory_hostname] }}"tags: update
- name: restart webapppoolshell: sudo supervisorctl restart {{AppPool}}- name: Remove a file, if presentshell: rm -f /tmp/{{ PATH }}_latest.ziptags: update

7 结果
在这里插入图片描述
在这里插入图片描述

这篇关于jenkins+gitlab+ansible-tower实现发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967298

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、