磁盘空间不足
在 GoCD 运行一段时间后,您在浏览 GoCD 时可能会注意到以下警告框:
如果你不采取任何措施,最终你会看到以下错误:
GoCD 将停止调度新的管道,直到你腾出更多空间,可以通过压缩大文件、附加更大的硬盘或删除未使用的构件来实现。你也可以通过启用旧构件的自动清理功能让 GoCD 管理构件磁盘空间。
自动删除构建产物
介绍
如果服务器上的可用磁盘空间较低,可以配置 GoCD 自动删除构件。当可用磁盘空间低于给定值时,GoCD 将清理构件,直到可用磁盘空间大于定义的值为止。
配置
指定构建产物清理的起始和结束限制
您必须以管理员用户身份登录才能配置此步骤。
- 从 GoCD 中任意页面的页眉导航到“管理 -> 服务器配置”部分。
- 导航到构件管理子部分。
- 在第一个编辑框中指定 GoCD 应何时开始清理构建产物。
- 在第二个编辑框中指定 GoCD 应何时停止清理构建产物。
从不删除某个阶段的构建产物
您必须以管理员用户身份登录才能配置此步骤。
您可以禁止从特定阶段删除构建产物,以便在删除过程中排除这些构建产物。此选项可以在流水线的阶段编辑器中设置。此选项可用于重要的阶段,以确保保留该阶段的构建产物。
- 进入 GoCD 仪表板的管理部分。
- 导航到流水线部分并选择一个流水线进行编辑。
- 导航到该阶段的阶段设置。
4. 勾选“永不清理构件”复选框
另请参阅…
压缩大型日志文件
在许多情况下,最简单的方法是压缩一些你不太常需要的较大构件。例如,如果你有一个名为 ’test.log’ 的大型日志文件,并且你在 Unix 系统上运行 GoCD 服务器,以下脚本将 gzip 那些在过去 10 天内未被修改的文件。
find /var/lib/go-server/logs/pipelines -name test.log -mtime +10 -type f -exec gzip -v '{}' \;
现在,如果你将此添加到系统定时任务表(crontab),你的服务器可以自动压缩大型构件。
将构件存储库移动到一个新的(更大的)驱动器
如果压缩大型构件没有给你足够的自由空间,你可以做的另一件事是附加一个更大的磁盘驱动器来存储构件。将驱动器连接到系统后,我们可以轻松更改 GoCD 使用的构件存储库的位置。
- 找到 GoCD 配置文件的位置
- 导航到管理 > 配置 XML标签部分
- 配置文件的位置在此处列出
- 安装新的驱动器
- 关闭 GoCD 服务器
- 将所有文件从原始构件存储库位置复制到新驱动器
- 更改配置文件中的构件存储库位置
<server artifactsDir="/path/to/new/artifacts">
...
</server>
- 启动 GoCD 服务器并验证是否仍可访问旧构件
删除未使用的构件
另一种腾出更多空间的选项是删除未使用(或容易重新创建)的构件。你也可能有不再需要的旧流水线。
构件存储库的目录结构使选择哪些构件安全删除变得更容易。格式为:
[artifacts-dir]/pipelines/[pipelineName]/[pipelineLabel]/[stageName]/[stageCounter]/[jobName]