开源一套快速部署程序的工具(CI/CD)


随着微服务越写越多,程序发布就成了一个麻烦事,这里开源一个快速部署工具:Vela,只要填写一个git地址、编译命令等简单信息,就能自动完成程序的部署。

Vela 特性:


  • 代码可在任意一台电脑自动完成编译,再自动上传至服务器

  • 可指定程序以Docker容器方式运行

  • 编译命令采用终端运行,理论支持所有命令行命令

  • 可在线编辑程序配置文件,编辑时可选择其他程序的配置文件作为参考

  • 程序更新时会自动备份现有版本,日后可通过备份列表恢复

  • 实时以列表形式展示所有程序的CPU、内存占用情况,并可设置报警线

Vela 构成


Vela 分为两部份:

  • Vela Web

运行在任意一台电脑上,它负责从git地址克隆代码,并执行编译命令;
对外提供 web 管理页面,作为 Vela 的管理入口。

  • Vela Agent

运行在目标服务器上,负责接收 Vela Web 发送过来的程序文件,并打包为 Docker 映像,然后运行该映像。

Vela 下载地址


https://cccscls-my.sharepoint.com/:f:/g/personal/jack_mutc_ca/Et7VbP7sX31EiN-NQkPL0RgBL5RBG15_PyepR5Tx0PaqsQ?e=BTngox

Vela Agent 安装


在目标服务器(Linux)上,下载 VelaAgent.***.zip ,解压后,在目录下运行下面命令安装vela-agent服务:

sudo chmod +x VelaService
sudo ./VelaService

会询问你用什么用户来运行日后部署的程序,你可以输入特点的用户名,或者直接回车,用root用户运行。

服务安装完毕后,运行 systemctl start vela-agent 启动服务。

如果你以后发布的程序需要以Docker容器的方式运行,那么,在此服务器上,还需要安装Docker。

Vela Web 安装


如果你用windows跑vela web,直接运行 VelaWeb.Server.exe 即可,不用参考下面Linux安装步骤。

在编译服务器(Linux)上,下载 VelaWeb.***.zip ,解压后,在目录下运行下面命令安装vela-web服务:

sudo chmod +x VelaService
sudo ./VelaService

会询问你用什么用户来运行该服务,你可以输入特点的用户名,或者直接回车,用root用户运行。

服务安装完毕后,运行 systemctl start vela-web 启动服务。

由于我平时都是部署.net项目和vue前端项目,所以,编译服务器我还会安装.net sdk、nodejs等环境

浏览器访问管理页面


vela-web是一个web服务,通过 http://ip:10001 可以访问它的管理页面,如果要修改它的端口,编辑 /opt/software/vela-web-application/appsettings.json 文件,然后重启服务即可:systemctl restart vela-web

默认管理员用户:admin 密码: admin

Vela界面截图

添加目标服务器


在“服务器列表”页面,点击添加服务器,把你的vela-agent服务器,添加到列表当中。
在这里插入图片描述

为了安全考虑,一个 vela-agent 服务器,只能被一个 vela-web 绑定,当 vela-agent 被添加到列表后,其他 vela-web 无法和它再绑定。
如果要解除这种绑定关系,需要手动删除 vela-agent 服务器上的 /opt/software/vela-agent-application/data.ClientCertHash文件,并重启服务:systemctl restart vela-agent

添加程序


在“程序部署列表”页面,点击【新部署程序】按钮,添加你要部署的程序。
例如,我现在要把一个开源的微服务网关,部署到我的服务器上,可以如下配置:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
上面有几个空格需要着重说明一下:

  • 命令执行目录

你的项目代码可能不是在git地址的根目录下,假如你的代码在 MyProject/ 目录下,那么,【命令执行目录】应该填写 MyProject

  • 命令脚本

这里是填写编译项目的语句,例如,.net项目,就可以填写:

dotnet publish --force -c release -o bin/publish --self-contained true --runtime linux-x64

注意,这个命令是在【命令执行目录】下执行的,假如【命令执行目录】= MyProject,那么,最终编译的文件会输出到 MyProject/bin/publish 目录下

  • 发布文件所在目录

这里是告诉服务器,编译后的文件放在什么地方了。
注意,这个目录是相对于【命令执行目录】而言的,所以,按照上面的编译命令 ,【发布文件所在目录】应该填写 bin/publish

编译并发布


在程序列表中,点击表格左边【…】按钮,打开菜单,点击【查看输出日志】按钮

在这里插入图片描述
然后会看到打开一个终端页面,点击【立刻发布】按钮,将会看到程序的编译过程。
在这里插入图片描述
安装nodejs也可编译前端项目
在这里插入图片描述
如果你是第一次发布这个程序,编译完成后,它不会立刻运行,会提示你先修改此程序的配置文件,再手动点击【启动】来运行此程序。

查看Docker容器日志


点击【查看程序控制台输出】,可以查看这个容器的日志
在这里插入图片描述

利用Vela部署一个PostgreSql


大家知道,可以通过 docker 映像直接部署一个PostgreSql数据库,但是,为了在Vela中可以统一查看数据库的压力状态,通过vela来部署会更方便一些。

如下图所示,新增部署程序,不要填写git地址,只需要设置一些docker相关的信息即可。
在这里插入图片描述

源码地址


https://github.com/simpleway2016/vela.git

有问题可到qq群交流:1030042218

  • 39
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值