最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用rpm打包上線部署golang代碼的方法教程

 更新時間:2018年01月09日 10:23:57   作者:xiaorui  
RPM是RPM Package Manager(RPM軟件包管理器)的縮寫,這篇文章主要給大家介紹了關(guān)于利用rpm打包上線部署golang代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧。

前言:

經(jīng)過一段時間的測試驗證,決定使用RPM來做Golang服務(wù)的部署方式. 我們組關(guān)于代碼的部署方式主要有這么幾種,Python直接使用virtualenv + py code的方式來上線,Lua 是直接打包,Golang 是先編譯生成二進制之后,聯(lián)合配置文件直接打包。 但由于我們開發(fā)的Golang的代碼很多是基礎(chǔ)組件,需要很多節(jié)點都去安裝部署。那么這時候自己編譯打包跟RPM的方式其實很是想象的,那還不如復(fù)用公司內(nèi)部成熟的基于rpm的上線系統(tǒng)。

下面話不多說了,來一起看看詳細的介紹吧。

rpm打包的使用方法:

# 安裝RPM依賴
yum install rpmdevtools
#生成RPM目錄
cd ~
rpmdev-setuptree

下面是rpm的基本組織結(jié)構(gòu).

├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS

其實最干脆的rpm打包方式就是 直接編輯SPECS的配置文件,在%install的邏輯里把go代碼編譯成二進制,然后cp進去,這就完事了。由于時間關(guān)系我就不詳細描述rpm的高級用法了,有興趣的朋友可以自己看SPECS相關(guān)的配置。

#軟件包簡要介紹
Summary: build transcoding
#軟件包的名字
Name: transcoding
#軟件包的主版本號
Version: 0.0.1
#軟件包的次版本號
Release: 5
#源代碼包,默認將在上面提到的SOURCES目錄中尋找
Source0: %{name}-%{version}.tar.gz
#授權(quán)協(xié)議
License: GPL
#軟件分類
Group: Development/Tools
#軟件包的內(nèi)容介紹
%description
視頻轉(zhuǎn)碼集群
#表示預(yù)操作字段,后面的命令將在源碼代碼BUILD前執(zhí)行
%prep
#BUILD字段,將通過直接調(diào)用源碼目錄中自動構(gòu)建工具完成源碼編譯操作
%build
#file
#安裝字段
%install
# 二進制執(zhí)行文件
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
#調(diào)用源碼中安裝執(zhí)行腳本
#文件說明字段,聲明多余或者缺少都將可能出錯
%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結(jié)構(gòu), 對的,多了一個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,也不安全…

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 淺談go語言中別名類型的使用

    淺談go語言中別名類型的使用

    類型別名是 Go 1.9 版本添加的新功能,主要用于解決代碼升級、遷移中存在的類型兼容性問題,本文主要介紹了go語言中別名類型的使用,感興趣的可以了解一下
    2024-01-01
  • go語言工程結(jié)構(gòu)

    go語言工程結(jié)構(gòu)

    這篇文章主要簡單介紹了go語言工程結(jié)構(gòu),對于我們學(xué)習go語言很有幫助,需要的朋友可以參考下
    2015-01-01
  • Golang基于epoll實現(xiàn)最簡單網(wǎng)絡(luò)通信框架

    Golang基于epoll實現(xiàn)最簡單網(wǎng)絡(luò)通信框架

    這篇文章主要為大家詳細介紹了Golang如何基于epoll實現(xiàn)最簡單網(wǎng)絡(luò)通信框架,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習學(xué)習
    2023-06-06
  • golang 結(jié)構(gòu)體初始化時賦值格式介紹

    golang 結(jié)構(gòu)體初始化時賦值格式介紹

    這篇文章主要介紹了golang 結(jié)構(gòu)體初始化時賦值格式介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • GO中Json解析的幾種方式

    GO中Json解析的幾種方式

    本文主要介紹了GO中Json解析的幾種方式,詳細的介紹了幾種方法,?文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2024-01-01
  • Go Println和Printf的區(qū)別詳解

    Go Println和Printf的區(qū)別詳解

    這篇文章主要介紹了Go Println和Printf的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang 標準庫 tips之waitgroup詳解

    Golang 標準庫 tips之waitgroup詳解

    本篇文章給大家介紹Golang 標準庫 tips之waitgroup的相關(guān)知識,包括使用 channel 實現(xiàn) WaitGroup 的功能介紹,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Golang 串口通信的實現(xiàn)示例

    Golang 串口通信的實現(xiàn)示例

    串口通信是一種常見的硬件通信方式,用于在計算機和外部設(shè)備之間傳輸數(shù)據(jù),本文主要介紹了Golang 串口通信的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Golang map實踐及實現(xiàn)原理解析

    Golang map實踐及實現(xiàn)原理解析

    這篇文章主要介紹了Golang map實踐以及實現(xiàn)原理,Go 語言中,通過哈希查找表實現(xiàn) map,用鏈表法解決哈希沖突,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2022-06-06
  • Go基礎(chǔ)教程系列之數(shù)據(jù)類型詳細說明

    Go基礎(chǔ)教程系列之數(shù)據(jù)類型詳細說明

    這篇文章主要介紹了Go基礎(chǔ)教程系列之數(shù)據(jù)類型詳細說明,需要的朋友可以參考下
    2022-04-04

最新評論

磴口县| 平乐县| 绥德县| 萍乡市| 合山市| 长垣县| 富锦市| 武宁县| 惠州市| 敦煌市| 黄梅县| 北川| 土默特左旗| 紫阳县| 二连浩特市| 嘉善县| 安顺市| 来宾市| 得荣县| 长武县| 旬邑县| 梁平县| 连平县| 光泽县| 麻栗坡县| 浦东新区| 陇西县| 克什克腾旗| 福泉市| 柯坪县| 唐河县| 阜新| 嫩江县| 濮阳县| 上杭县| 通州市| 长岛县| 泗水县| 仙游县| 定州市| 江陵县|