1、ubuntu安装go环境
2、ubuntu安装supervisor进程管理工具
3、安装jenkins
4、在jenkins安装go plugin、gitlab plugin
参考:ubuntu配置golang环境_wanghao3616的博客-CSDN博客_ubuntu配置golang
注意:记住里go解压的路径和运行路径(即:GOROOT路径和GOPATH路径),在jenkins中添加go运行环境时用
参考:ubuntu环境使用supervisor部署Go应用_wanghao3616的博客-CSDN博客
小知识:supervisor支持common多行命令
# /bin/bash -c "common1 && common2"
command = /bin/bash -c "cd /gopath/src/demo &&./demo"
安装java
sudo apt-get install openjdk-8-jre
查看java版本
java -version
安装Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
打开jenkins
在浏览器中访问 http://192.168.1.100:8080 你的服务器ip
首次进入会要求输入初始密码如下图,
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。
小知识: Jenkins执行sudo权限的设置
Jenkins系统中添加执行脚本的时候,有一些命令是需要sudo权限和来执行的,可以在root权限下添加一下Jenkins账号的权限
1、添加不需要密码可sudo执行指定命令的权限
cd /etc
chmod u+w /etc/sudoers
vi /etc/sudoers
##########################################
jenkins ALL=NOPASSWD: /usr/bin/supervisorctl
//即允许jenkins用户使用sudo执行supervisorctl的命令,且执行时不需要输入密码
2、解决:sudo: no tty present and no askpass program specified(sudo版本较低的可以先升级一下sudo)
vi /etc/sudoers
##########################################
#
#Defaults requiretty
Defaults:jenkins !requiretty
#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults visiblepw
jenkins默认访问地址
进入【系统管理】->【插件管理】->【可选插件】或者在【系统管理】->【插件管理】右上方进行搜索安装即可
添加 go插件
在“系统管理”-“插件管理”-“可选插件”。
这里我们添加Go插件Go-Plugin-Jenkins
点击最下边 “直接安装” 即可完成安装。
安装完成勾选最下面重启jenkins选项。
该插件主要完成以下几个功能:
提供各预编译版本 GO 安装包,方便 Jenkins 所在机器执行安装。
配置 GOROOT 环境变量,并指向安装的 Go 工具。
添加 $GOROOT/bin 到系统 PATH 中,以方便构建时使用 GO 工具时可以直接使用。
说明一下,我们知道 GO 项目执行编译,需要指定好 GOROOT 以及配置 GOPATH 到环境变量中,这里插件直接帮我们配置好了。当然如果用默认配置不合适,也可以不用自动安装,这个随后会讲。
安装GitLab Plugin插件
在”系统管理->管理插件”-“已安装插件”位置检查此插件是否已经安装。如果没有,先安装,这个插件在随后的触发构建的时候会用。
在“系统管理”-“全局工具配置”-“go”,点击"新增Go"。默认情况下,插件自动安装 。
这里输入别名“go1.12.4”
由于国内网路原因,无法直接访问golang.org(所以学会科学上网很重要!)。那么我们可不用自动安装,直接在jenkins的容器上安装 Go,然后在这里指定 Go 安装目录即可。例如,这里我提前在机器 /var/jenkins_home/go 目录安装好了系统对应版本的 Go-1.12 版本的安装包,直接配置即可。Go 环境详细安装过程,或参考https://segmentfault.com/a/1190000014788819
进入【凭据】->【系统】->【全局凭据】->【添加凭据】,如下图
进入【系统管理】->【全局工具设置】->【新增Go】,设置在centOS中GOROOT路径即可,我的go在/usr/local/go,具体路径以自己安装路径为准,如图:
点击“新建任务”,输入任务名称(这里我们输入demo),同时我们选择“构建一个自由风格的软件项目”
添加源码
填写git仓库地址,然后选择前面配置的gitlab用户认证。点击“添加”按钮。
配置“Additional Behaviours”
构建环境
勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来。
勾选“Set up Go programming language tools”,选择运行go版本。
构建触发器配置
选择如下
选择“高级”,再点击“generate”,生成 Secret token(用gitlab之间的认证)。
配置构建
#配置GOPATH
export GOPATH=$WORKSPACE
export PATH=$GOPATH:$PATH
go env
echo "GOPATH: ${GOPATH}"
#执行go get & build命令
cd $GOPATH/src/demo && env GOOS=linux GOARCH=amd64 go build -o demo main.go
sudo supervisorctl restart demo
配置完之后保存。
左下角红方框,是构建历史,红球表示不成功,篮球表示成功。
打开“工作区”,这里看到main.go证明构建成功。
参考:
centos7下部署Docker+Jenkins+Gitlab+Golang持续集成环境_无风的雨的博客-CSDN博客
Jenkins部署Golang(centOS)_Keson丶的博客-CSDN博客_golang jenkins