使用salt实现jenkins发版时,远程对go项目编译重启bash
一、go 版本1.12 使用go mod服务器
二、设置go镜像ui
GOPROXY="https://goproxy.io"spa
三、slat 脚本code
sudo salt serverip cmd.run "/bin/sh /home/script/build.sh"
serverip:你的服务器
四、build.shserver
#!/bin/bash #进入项目目录 cd /home/www/projectname #导出环境变量 source /etc/profile #杀掉进程 kill -9 `ps -ef | grep courseware | grep -v grep | awk '{print $2}'` #编译 go build #使用nohup启动 nohup ./courseware --release=true >/dev/null 2>&1 & #打印进程信息 ps -ef | grep courseware | grep -v grep #最后必须退出 exit
解释:blog
一、笔者的可执行文件叫 courseware进程
二、遇到go 命令找不到,是由于远程机没法获取go的环境变量,因此,执行一下 source /etc/profile ip
三、执行完脚本最后要 exit,由于使用nohup并不会本身退出cmd
四、若是GOPATH、GOCACHE 就改下目录
笔者的go环境变量
export GOROOT=/usr/local/go export GOPATH=/usr/local/gopath export PATH=$PATH:$GOROOT/bin export GOPROXY="https://goproxy.io" export GOCACHE="/home/GOCACHE/go-build"