gopub(基于vue.js element框架+golang beego框架开发)是一个基于运维场景设计的企业级运维发布系统。配置简单、功能完善、界面流畅、开箱即用!支持git、jenkins版本管理,支持各种web代码发布,一键完成Golang,nodejs,PHP,Python,JAVA等代码的发布、回滚操作。
我们运维团队前期使用walle web部署系统进行发布操作,在此也感谢walle团队贡献的优秀开源项目.walle的web体验比较好,本次开源的gopub前台完全模仿walle前台,使用vue.js element框架重写.
gopub已持续运行近两年时间,在我们预发布和生产环境完成37000+次稳定部署,支持单项目100+台服务器部署110秒左右,支持2G+CDN静态资源发布传输30秒完成.
公网测试环境:http://140.143.85.18:8192/
#使用dockerhub镜像启动,连接外部数据库
sudo docker run --name gopub -e MYSQL_HOST=x.x.x.x -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d lc13579443/gopub:latest
#使用dockerhub镜像启动,连接Docker数据库
sudo docker run --name gopub-mysql -h gopub-mysql -p 3306:3306 -v /data/gopub-mysql:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 --restart always -d mysql:5.7.24 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
sudo docker run --name gopub --link gopub-mysql:gopub-mysql -e MYSQL_HOST=gopub-mysql -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d lc13579443/gopub:latest
# 使用multi-stage(多阶段构建)需要docker 17.05+版本支持
sudo docker build --network=host -t gopub .
sudo docker run --name gopub -e MYSQL_HOST=x.x.x.x -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d gopub:latest
# apiVersion: apps/v1需要kubernetes 1.9.0+版本支持
kubectl apply -f gopub-kubernetes.yml
# 克隆项目
git clone https://gitee.com/dev-ops/gopub.git
# 编译前端,npm较慢可使用cnpm
cd vue-gopub
npm install
npm run build
#修改配置 数据库配置文件在 src/conf/app.conf
#编译,control需要给可执行权限,并修改go安装目录 export GOROOT=/usr/local/go
./control build
#执行数据库初始化
./control init
#启动服务 启动成功后 可访问 127.0.0.1:8192 用户名:admin 密码:123456
./control start
#停止服务
./control stop
#重启服务
./control restart
#给control和src/gopub给可执行权限
#执行数据库初始化
./control init
#启动服务 启动成功后 可访问 127.0.0.1:8192 用户名:admin 密码:123456
./control start
#停止服务
./control stop
#重启服务
./control restart
#安装系统服务
cp ./gopub.service /usr/lib/systemd/system/gopub.service
systemctl enable gopub.service
systemctl restart gopub.service
前提条件:gopub运行用户(如root)ssh-key必须加入目标机器的{remote_user}用户ssh-key信任列表
#添加机器信任
su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
#need remote_user's password
#免密码登录需要远程机器权限满足以下三个条件:
/home/{remote_user} 755
~/.ssh 700
~/.ssh/authorized_keys 644 或 600
项目名称:xxx.example.com (项目命名一定要规范并唯一)
项目环境:现在只用到预发布环境和线上环境。
地址:支持gitlab,jenkins,file三种发布方式.
选用Git在地址栏里面填入git地址,https方式需在地址中加入账号密码,ssh方式需保证gopub所在服务器有代码拉取权限.我们一般在gitlab创建一个public用户,将gopub所在服务器key加入public用户deploy-keys设置,并将public用户授权可拉取所有gitlab项目.
选用jenkins需要录入jenkins对于的job地址和账号密码,
前面两个任务的执行是在管理机上,后面两个任务的执行是在目标机器上
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.