前言:
经过一段时间的测试验证,决定使用RPM来做Golang服务的部署方式. 我们组关于代码的部署方式主要有这么几种,Python直接使用virtualenv + py code的方式来上线,Lua 是直接打包,Golang 是先编译生成二进制之后,联合配置文件直接打包。 但由于我们开发的Golang的代码很多是基础组件,需要很多节点都去安装部署。那么这时候自己编译打包跟RPM的方式其实很是想象的,那还不如复用公司内部成熟的基于rpm的上线系统。
下面话不多说了,来一起看看详细的介绍吧。
rpm打包的使用方法:
# 安装RPM依赖 yum install rpmdevtools #生成RPM目录 cd ~ rpmdev-setuptree
下面是rpm的基本组织结构.
├── BUILD ├── BUILDROOT ├── RPMS ├── SOURCES ├── SPECS └── SRPMS
其实最干脆的rpm打包方式就是 直接编辑SPECS的配置文件,在%install的逻辑里把go代码编译成二进制,然后cp进去,这就完事了。由于时间关系我就不详细描述rpm的高级用法了,有兴趣的朋友可以自己看SPECS相关的配置。
#软件包简要介绍 Summary: build transcoding #软件包的名字 Name: transcoding #软件包的主版本号 Version: 0.0.1 #软件包的次版本号 Release: 5 #源代码包,默认将在上面提到的SOURCES目录中寻找 Source0: %{name}-%{version}.tar.gz #授权协议 License: GPL #软件分类 Group: Development/Tools #软件包的内容介绍 %description 视频转码集群 #表示预操作字段,后面的命令将在源码代码BUILD前执行 %prep #BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作 %build #file #安装字段 %install # 二进制执行文件 mkdir -p ${RPM_BUILD_ROOT}/usr/bin/ cp -f /devops/app/go/src/transcoding/engine_bin ${RPM_BUILD_ROOT}/usr/bin/transcoding_engine_bin cp -f /devops/app/go/src/transcoding/rest_bin ${RPM_BUILD_ROOT}/usr/bin/transcoding_rest_bin # 配置文件 mkdir -p ${RPM_BUILD_ROOT}/etc/transcoding cp -f /devops/app/go/src/transcoding/etc/online.config.ini ${RPM_BUILD_ROOT}/etc/transcoding/config.ini # 控制脚本 mkdir -p ${RPM_BUILD_ROOT}/etc/init.d/ cp -f /devops/app/go/src/transcoding/bin/init.sh ${RPM_BUILD_ROOT}/etc/init.d/transcoding.sh #调用源码中安装执行脚本 #文件说明字段,声明多余或者缺少都将可能出错 %files %defattr(-,root,root) /usr/bin/transcoding_engine_bin /usr/bin/transcoding_rest_bin /etc/init.d/transcoding.sh %dir /etc/transcoding
当编辑完SPECS文件后,然后开始运行 rpmbuild
生成rpm包.
rpmbuild -bb transcoding.spec
编译完之后,我们在来看看rpm结构, 对的,多了一个rpm包…
├── BUILD ├── BUILDROOT ├── RPMS │ └── x86_64 │ └── transcoding-0.0.1-5.x86_64.rpm ├── SOURCES ├── SPECS │ └── transcoding.spec └── SRPMS
剩下要做的就是把我们生成的rpm包,上传到我们私有的yum repo源里面。剩下的流程你就可以走你的标准的上线流程了。
这里需要注意两件事情:
1. rpm specs
版本号的更新,如果不更新会造成yum update
无效….
2. 如果配置文件含有db的账号密码,请不要添加到rpm中,就算是私有yum repo
,也不安全…
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 宝丽金50周年《古典篇》3CD限定盘[低速原抓WAV+CUE][1.8G]
- 群星.1986-新格名曲精选-歌3【新格】【WAV+CUE】
- 【ABC唱片】徐刚《独步外滩SACD》ISO+WAV分轨
- 刘月宁《扬琴独奏-木兰辞变奏曲》[FLAC+CUE]
- 陈奕迅《48首选》[WAV分轨][1.8G]
- 林忆莲《陪着我走》 SACD DSD64[DSF][1.1G]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 刘欢范琳琳.1988-信天游迪斯科(TP版)【内蒙古音像】【WAV+CUE】
- 群星-真声音真音乐[WAV+CUE]
- 群星-《茶缘》(TeaPredestinedRelationship)[FLAC]
- RCA白头佬美国头版-斯托科夫斯基[狂想曲][WAV+CUE]
- 【ABC唱片】《春花秋月SACD-062》-WAV分轨
- [ABC唱片]-《俄罗斯三角琴》[K2-064][K2CD]WAV+CUE
- 群星《2007香港高级视听展原音精选SACD》[ISO][2.9G]
- 群星《华纳至尊金曲》2CD[FLAC][865M]