概述
前言
说到自动化部署,应该都会联想到jenkins,jenkins到底有多么强大,这里就不啰嗦了,之前一直百度“jenkins部署go”、“go自动化部署”、“jenkins 部署golang”,然而都没有详细的文档,对度娘信任快结束了。下面就将我用jenkins部署golang的过程重现一下,以作笔记。
准备工作
1、centOS安装go环境
2、centOS安装nginx
3、centOS安装supervisor进程管理工具
4、安装jenkins
5、在jenkins安装go plugin、subversion plugin
一、安装go运行环境
参考:https://blog.csdn.net/shida_csdn/article/details/79441694
注意:记住里go解压的路径和运行路径(即:GOROOT路径和GOPATH路径),在jenkins中添加go运行环境时用
二、nginx安装
参考:https://www.cnblogs.com/jerrypro/p/7062101.html
三、supervisor安装
参考:https://www.jianshu.com/p/7d7c00b220bf
其中包含了对go项目配置做了详细说明
四、安装Jenkins
参考:https://www.cnblogs.com/loveyouyou616/p/8714544.html
- 由于在自动化部署过程中需要操作centOS相关文件夹,因此建议以jenkins以root身份启动,具体设置见
https://blog.csdn.net/wzqnls/article/details/78506149
五、jenkins安装go plugin、subversion plugin
进入【系统管理】->【插件管理】->【可选插件】或者在【系统管理】->【插件管理】右上方进行搜索安装即可
六、jenkins添加svn用户
由于我的项目是用svn做版本控制的,因此需要subversion plugin来进行代码管理,所以就需要用到svn账号密码,进入【凭据】->【系统】->【全局凭据】->【添加凭据】,如下图
七、添加go path
进入【系统管理】->【全局工具设置】->【新增Go】,设置在centOS中GOROOT路径即可,我的go在/usr/local/go,具体路径以自己安装路径为准,如图:
八、jenkins部署go
1、点击左边菜单栏【新建任务】->【输入名称】->选择【构建一个自由风格的软件项目】->确认
2、选择项目,点击下拉角标,配置,如图:
3、将项目设置为go运行路径,我的为/opt/applications/go/src,否则go build会找不到go path路径,如图:
4、填写svn项目地址,选择拉去svn的账号,如图:
5、构建环境,选择go环境,第七部配置过,如图:
6、构建,选择执行shell,输入命令,如图:
cd /opt/applications/go/src/nana/service/user/api/cmd/
pwd
export GOROOT=/usr/local/go
GOROOT=/usr/local/go
PATH=/usr/local/go/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/go/bin
export GOPATH=/opt/applications/go
GOPATH=/opt/applications/go
go build user.go
mv /opt/applications/go/src/nana/service/user/api/cmd/user /opt/applications/service/user
supervisorctl start user
对上面shell命令大致解释一下:
【cd /opt/applications/go/src/nana/service/user/api/cmd/】:进入到go项目中的main入口文件目录,其中/opt/applications/go/src其实就是我们在centOS安装go以后,设置的GOPATH路径,具体以自己的为准
【pwd】:列出当前绝对路径
【
export GOROOT=/usr/local/go
GOROOT=/usr/local/go
PATH=/usr/local/go
/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/go/bin
export GOPATH=/opt/applications/go
GOPATH=/opt/applications/go
】对当前项目临时设置go运行环境其中红色部分分别为自己在centOS上安装的go的环境配置路径。
到这你肯定会有一个疑问,为什么前面已经设置了全局go环境,为什么这里还需要设置,请原谅我不能回答具体所以然,在我们布置的过程中,如果不设置临时环境,那么在自动化编译时GOROOT会去
/var/lib/jenkins
(即jenkins的路径)下去找运行路径,这肯定是不对的,因为我们的项目其实在/opt/applications/go
下面
【go build user.go】:对go进行打包
【mv /opt/applications/go/src/nana/service/user/api/cmd/user /opt/applications/service/user】:为了便于管理,我在此处将打包好的文件存放在了单独的目录来进行管理,避免与源码混淆,因此这一步操作就是将打包好后的二进制文件user移动到/opt/applications/service/user目录下进行管理,由于有的时候go需要通过flag加载配置文件,那么此时,配置文件也需要放在与/opt/applications/service/user相对
的路径下,如我的user服务需要加载etc/config.json配置文件,注意:前面没有/
。那么就需要在service下建立一个etc目录,并将config.json放在下面。
【supervisorctl start user】通过进程管理工具supervisorctl来启动二进制文件user,具体配置过程已经在
【三】supervisor
安装中有详细介绍
- 到此,整个jenkins部署golang算结束了。这个过程需要耐心,切勿急躁,祝君顺利!
最后
以上就是鲜艳电灯胆为你收集整理的Jenkins部署Golang(centOS)的全部内容,希望文章能够帮你解决Jenkins部署Golang(centOS)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复