Gocd 学习笔记

2018-08-16  本文已影响0人  zpei0411

一、GOCD 一些基础概念

1. Task
任务或构建任务是需要执行的操作。 通常是一个单一的命令
2. Job

3. Stage

4. Pipeline

5. Materials and Triggers

6. Pipeline dependency material

image

Fan-in:

如图,git 触发 Pipeline1 和 Pipeline2 ,而 Pipeline1 的 Stage2 的完成和Pipeline2 的 Stage1 的完成是触发 Pipeline3 的条件,如果 Pipeline2 的 Stage1的完成较快而 Pipeline1 的 Stage2 完成较慢,Pipeline 会等待 Pipeline1 的Stage2 的完成后被触发,它不会触发与 Pipeline1 的不一致或旧的修改, 以确保一致性。

image

8. Value Stream Map (价值流图)

如图,当 Repo1(git) 中有新的提交时,GoCD 不会立即触发 Pipeline5,它将等待 Pipeline1 触发并成功完成,然后等待 Pipeline4 触发并成功完成,最后,

它将触发 Pipeline5 与 Pipeline1 使用相同的 Repo1 相同的修订版本。

image
9. Artifacts

10. Agent

如图,我们运行一个需要 Firefox 资源的 Job,那么只有 Agent1 和 Agent3 满足,如何知道 Agent1 和 Agent3 上有 Firefox ?在这两个 Agent 上打上标签"Firefox(or XXX)"

image.png
12. Environments
ENV_ENV => 1
ENV_PIP => 2
ENV_STG => 3
ENV_JOB => 4
MY_VAR => 4

二、Pipelines Dashboard in GoCD

以我的 dashboard 为例,定义了两个 pipeline group, 在 dashboard 里 pipeline 被列在他们所属的 pipeline group 下面

image.png

注:

  1. “触发” 按钮强制一条 pipeline 开始构建活动。
  2. 带有[选项按钮的触发器], 允许选择 pipeline 应该构建的 material 的修订,并触发 pipeline。


    image.png
  3. “暂停”(Pause)按钮暂停 pipeline 的调度

Dashboard 上的 Personalize 按钮来定制和控制 Dashboard 看到的 Pipeline 。可以选择要查看的 Pipeline ,在这个列表中,并通过单击“Apply”按钮来保存选择。从那时起,Pipeline 指示板将只显示选择的。

如果一个新的 Pipeline 被其他人添加,Pipeline 也会显示在该账户的的Dashboard 上。取消(Show newly created pipelines)复选框,以防止它们出现在我们的 Dashboard 上。


image.png

有四种配置 Pipeline 的方法:

  1. 通过管理界面来配置 Pipeline。

  2. 通过 Pipeline 界面的 “Config XML” 选项卡直接编辑 XML。

  3. 还可以通过调用配置API来配置 Pipeline

  4. 通过文件系统直接进行 XML 编辑进行配置后。默认情况下,Go服务器每5秒对文件系统进行轮询,以更改 cruise-config.xml。该文件的位置显示在 Admin >配置XML选项卡的右上角。

三、Agent

Agent 页面列出了服务器可用的所有代理和它们当前的状态。当 Agent 首次连接到服务器时,它是 “Pending”(挂起状态)。管理员必须在 GoCD 将工作安排在该Agent 之前启用 Agent。

管理员也可以禁用 Agent 。GoCD不会为一个被 Agent 的代理安排工作。如果在Agent 被禁用时正好有一项工作正在该 Agent 上建立,则该工作将被完成;然后才禁用 Agent。管理员在重新安排工作之前需要启用 Agent。

管理员可以选择删除不再需要的 Agent。在删除 Agent 之前,必须禁用该Agent 。处于(building)状态或者(cancelled)状态的 Agent 不能被删除。

可以将资源与 Agent 关联起来,首先选择您感兴趣的 Agent。然后点击 Resources 按钮。

四、安装

服务器使用的默认端口都是 8153(HTTP端口)和 8154(HTTPS端口),一个或多个 Agent 可以安装在任何节点上,而不一定是安装 GoCD 服务器的节点。唯一的要求是 GoCD 服务器的端口8153和8154可以从安装 Agent 的节点访问。

服务器硬件要求:

依赖关系:

运行 GoCD 服务器的主机应该有一个单独的磁盘分区来存储 GoCD Artifacts。Artifacts存储库可以快速填充(特别是在存储大型二进制文件时)。如果不为Artifacts 创建单独的分区,系统磁盘将被填满。可以在页面 Pipeline Management 里或者 config xml 里指定 Artifacts 存储位置。
以我的项目为例,我的 server 是用 docker 启动的,在docker-compose指定了存储卷


image.png image.png

cr­uise-­confi­g.xml 和 /godata/artifacts 在 同级目录下 /godata/ 下,指定了 artifacts 的位置:

<cruise>
  <server artifactsdir="artifacts">
  ...
  </server>
</cruise>

如果需要更改 artifacts 存储库,那么安全的方法是:

Agent所在机器的硬件要求:

`

上一篇 下一篇

猜你喜欢

热点阅读