利用rpm打包上线部署golang代码的方法教程

利用rpm打包上线部署golang代码的方法教程,第1张

概述前言:经过一段时间的测试验证,决定使用RPM来做Golang服务的部署方式.我们组关于代码的部署方式主要有这么几种,Python直接使用virtualenv+pycode的方式来上线,Lua是直接打包,Golang是先编译生成二进制之后,联合

前言:

经过一段时间的测试验证,决定使用RPM来做Golang服务的部署方式. 我们组关于代码的部署方式主要有这么几种,Python直接使用virtualenv + py code的方式来上线,Lua 是直接打包,Golang 是先编译生成二进制之后,联合配置文件直接打包。 但由于我们开发的Golang的代码很多是基础组件,需要很多节点都去安装部署。那么这时候自己编译打包跟RPM的方式其实很是想象的,那还不如复用公司内部成熟的基于rpm的上线系统。

下面话不多说了,来一起看看详细的介绍吧。

rpm打包的使用方法:

# 安装RPM依赖yum install rpmdevtools#生成RPM目录cd ~rpmdev-setuptree

下面是rpm的基本组织结构.

@H_403_23@├── BUILD├── buildrOOT├── RPMS├── SOURCES├── Specs└── SRPMS

其实最干脆的rpm打包方式就是 直接编辑Specs的配置文件,在%install的逻辑里把go代码编译成二进制,然后cp进去,这就完事了。由于时间关系我就不详细描述rpm的高级用法了,有兴趣的朋友可以自己看Specs相关的配置。

@H_403_23@#软件包简要介绍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_bincp -f /devops/app/go/src/transCoding/rest_bin ${RPM_BUILD_ROOT}/usr/bin/transCoding_rest_bin# 配置文件mkdir -p ${RPM_BUILD_ROOT}/etc/transCodingcp -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包.

@H_403_23@rpmbuild -bb transCoding.spec

编译完之后,我们在来看看rpm结构,对的,多了一个rpm包…

@H_403_23@├── 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,也不安全…

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

总结

以上是内存溢出为你收集整理的利用rpm打包上线部署golang代码的方法教程全部内容,希望文章能够帮你解决利用rpm打包上线部署golang代码的方法教程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存