这篇文讲什么?

介绍 Buddy on-premises 的使用体验:

  • 我是如何安装的。
  • 做了哪些配置。
  • 怎么使用

这篇文对谁有用?有什么用?

对谁有用?:想用 Buddy 搭建 CI/CD 或其他自动化工作流的人。
有什么用?:节省时间

介绍

budd-1
Buddy 是一个帮助自动化测试和部署 (CI/CD) 的工具

正文

Buddy 免费版是1个月120次 execution
120

然后它们提供一个自建选项,就是装在自己的机器上。30天试用
onpremises-1

我因为刚好手头有一个 Azure 的免费试用。就打算用下图这台机器装一下试试
az-1

装的是 Linux 版
linux

安装倒也简单,跑一条命令就够了。
install

安装等了可能有10分钟。

有个小问题是 ip 地址写错了,
给我返回的是 http://10.0.0.6 让我访问(大概是这个地址,不记得了)
这个显然不行
所以只能跑如下命令:

sudo buddy stop
sudo buddy configure

然后把 Azure 那个外网 IP 填进去:137.117.103.40
好像最后一步是 sudo buddy start 再开起来

Buddy 的安装就此完成

接下来是使用部分

代码仓库的部分我选的是 Github。需要做一定配置。
要去这个网址:https://github.com/settings/developers
new
新建一个应用
git
然后把 Github 这里的 Client ID, Client Secret 填到 Buddy 里面去
git2
填入 Buddy
github

以上,Github 配置部分就完成了

Buddy 现在可以从你的 Github 账号上拿到代码了。

正式使用

我新建了一个 Ruby on Rails 5.2.2 项目用来测试。
在 Github 上面叫 rails-buddy-cd。
在 Buddy 里面新建项目就也叫同名了。
bud

目前只有一个动作,就是用 Dockerfile 构建镜像然后推送到 Azure
push

我配置到推送到 Azure 的 Container Registry
docker-az

账号密码你需要在 Azure 这边找一下,如下图:
azz

我这里很快就成功了。
az-budy

补充1:镜像命名

  1. Docker 镜像的 name 和 tag 可以手写。
    name
    可以看到推到 Azure 上就是这样的:
    manual-1

  2. 也可以用环境变量来控制 name 和 tag。
    比如 Buddy 有如下环境变量。
    variable-1
    然后 name 和 tag 这里写
    var
    可以看到推上去之后就是分支和 commit 名字。
    b
    因为 Github 上就是这样的:
    zx

补充2:如何回滚?(rollback)

有时候做错事情了可能需要回滚到上一个版本。
https://buddy.works/knowledge/deployments/how-deploy-specific-revision-to-server
这个链接里的文档有说,其实就是在跑的时候选就行了,如下图:
doc

点击这里
this

选一个 commit
sele
然后运行就行了。

补充3:如何手动确认?

有时候你可能不想要全自动的流程。希望某个步骤要手动确认下。
比如部署需要手动确认。

那么可以加一个 "Waiting for approve" 的 Action。
manual-confirm

可以看到下图这里就2个 Action。先 build 镜像然后等待 Approve。
在这里只是举例子,所以并没有什么卵用。Approve 后面没有任何动作。
WX20190214-134736@2x

可以看到 build 之后会提示需要 Approve
appro

点击之后是这样的:
appro2

确定之后就完成了:
finish

这个信息你可以任意设置
set

补充4:如果有的话再补