自定义企业 Worker 配置

连接到平台的凭据 #

使用 Ubuntu 16.04 作为主机操作系统 #

连接到 Travis CI 企业版平台的配置可以在 /etc/default/travis-worker 中找到。如果需要更改 Worker 应连接到的主机名或 RabbitMQ 密码,可以通过更新以下内容来实现

export AMQP_URI="amqp://travis:<rabbitmq password>@<your-travis-ci-enterprise-domain>/travis"

使用 Ubuntu 14.04 作为主机操作系统 #

连接到 Travis CI 企业版平台的配置(包括 RabbitMQ 密码)可以在 /etc/default/travis-enterprise 中找到。

如果需要更改 Worker 应连接到的主机名或 RabbitMQ 密码,可以通过更新以下内容来实现

export TRAVIS_ENTERPRISE_HOST="<your-travis-ci-enterprise-domain>"
export TRAVIS_ENTERPRISE_SECURITY_TOKEN="super-secret-password"

设置超时 #

以下选项可以在 /etc/default/travis-worker 中自定义。建议所有 Worker 使用相同的配置。

默认情况下,作业最多可以运行 50 分钟。可以使用以下设置增加或减少此时间

export TRAVIS_WORKER_HARD_TIMEOUT="50m"

如果在超过 10 分钟内没有收到日志输出,则作业将被取消,因为假定作业已停止。可以使用以下设置自定义此超时

export TRAVIS_WORKER_LOG_TIMEOUT="10m"

配置并发作业数 #

Worker 运行的并发作业数和作业允许使用的 CPU 数分别由 TRAVIS_WORKER_POOL_SIZETRAVIS_WORKER_DOCKER_CPUS 环境变量配置。每个作业至少需要 2 个 CPU,并且默认情况下,每个 Worker 运行 2 个作业。 TRAVIS_WORKER_POOL_SIZE * TRAVIS_WORKER_POOL_SIZE 的乘积不能超过 Worker 机器拥有的 CPU 数,否则作业将出错并重新入队。

要更改 Worker 允许使用的并发作业数,请更新以下设置

export TRAVIS_WORKER_POOL_SIZE="2"

要更改作业允许使用的 CPU 数,请更改以下设置

export TRAVIS_WORKER_DOCKER_CPUS=2

要完全禁用此设置,请将值设置为 0。然后将根据需要使用资源,这意味着单个作业例如可以使用所有 CPU 内核。

export TRAVIS_WORKER_DOCKER_CPUS=0

更改 Worker 主机名 #

每个 Worker 应该具有唯一的主机名,以便更容易确定作业在何处运行。默认情况下,这设置为 Worker 运行所在主机的 hostname

export TRAVIS_WORKER_HOSTNAME=""

禁用 SSL 验证消息 #

平台已设置为使用自签名 SSL 证书。此选项允许 Worker 通过 SSL 与平台通信,但忽略验证警告。

export TRAVIS_WORKER_BUILD_API_INSECURE_SKIP_VERIFY="false"

启用 S3 依赖项缓存 #

如果要为构建设置 S3 依赖项缓存,可以使用以下示例配置

export TRAVIS_WORKER_BUILD_CACHE_FETCH_TIMEOUT="10m"
export TRAVIS_WORKER_BUILD_CACHE_PUSH_TIMEOUT="60m"
export TRAVIS_WORKER_BUILD_CACHE_S3_ACCESS_KEY_ID=""
export TRAVIS_WORKER_BUILD_CACHE_S3_SECRET_ACCESS_KEY=""
export TRAVIS_WORKER_BUILD_CACHE_S3_BUCKET=""
export TRAVIS_WORKER_BUILD_CACHE_S3_REGION="us-east-1"
export TRAVIS_WORKER_BUILD_CACHE_S3_SCHEME="https"
export TRAVIS_WORKER_BUILD_CACHE_TYPE="s3"

配置作业允许的内存使用量 #

Worker 的 RAM 默认配置为 4G。如果要更改它,可以添加以下内容。要完全禁用它,请将值设置为 0。

export TRAVIS_WORKER_DOCKER_MEMORY=4G
# OR
export TRAVIS_WORKER_DOCKER_MEMORY=0

设置最大日志长度 #

Worker 的配置为 defaultMaxLogLength = 4500000,即 4.5MB。该设置以字节为单位测量,因此要获得 40MB,需要 40000000。

export TRAVIS_WORKER_MAX_LOG_LENGTH=40000000

在企业版上跨 Worker 作业挂载卷 #

当 Worker 启动作业的容器时,可以使用 Docker 绑定挂载。这使您可以跨 Worker 运行的所有作业共享文件或目录。可以以 *空格分隔* 字符串的形式提供多个绑定。

例如,以下设置显示了如何以读写模式共享 /tmp 目录,以及以只读模式共享 /var/log 目录(:r 是默认值)

export TRAVIS_WORKER_DOCKER_BINDS="/tmp:/tmp:rw /var/log"

官方 Docker 文档 中列出了所有选项和挂载模式。

Worker 位于 HTTP(S) 代理之后 #

如果您在 HTTP(S) 代理之后使用 Travis CI 企业版,我们已经为您准备好了。从 travis-worker 4.6 开始,可以在代理之后运行构建。

如何确定我是否安装了正确的 travis-worker 版本? #

Ubuntu 16.04+ #

通过 SSH 连接到您的 Worker 机器并运行

$ sudo docker images | grep worker
travisci/worker        v4.6.1                      ef7a3419050c        17 hours ago        44.7MB

Ubuntu 14.04 #

通过 SSH 连接到您的 Worker 机器并运行

$ travis-worker -v
travis-worker v=v4.6.1 rev=73392421d0ca807b83d4d459ad3dd484820fd181 d=2018-10-30T16:13:39+0000 go=go1.11.1

升级 travis-worker #

如果需要安装较新版本的 travis-worker,请按照我们 更新您的 Travis CI Worker 文档 中的说明进行操作。

配置 HTTP 代理 #

在 Worker 机器上,请在编辑器中打开 /etc/default/travis-worker 并添加以下示例中的两行。 TRAVIS_WORKER_DOCKER_API_VERSION 的值取决于安装的 Docker 版本。

export TRAVIS_WORKER_DOCKER_HTTP_PROXY="<YOUR PROXY URL>"
export TRAVIS_WORKER_DOCKER_API_VERSION=1.35

在此示例中,我们使用了 Docker-CE 17.12。根据 API 不匹配表,我们需要为 TRAVIS_WORKER_DOCKER_API_VERSION 选择 1.35

您可以在下面找到可用环境变量的完整列表以及它们在构建过程中如何访问

环境变量 可用作
TRAVIS_WORKER_DOCKER_HTTP_PROXY HTTP_PROXY, http_proxy
TRAVIS_WORKER_DOCKER_HTTPS_PROXY HTTPS_PROXY, https_proxy
TRAVIS_WORKER_DOCKER_NO_PROXY NO_PROXY, no_proxy
TRAVIS_WORKER_DOCKER_FTP_PROXY FTP_PROXY, ftp_proxy

请注意,所有 apt-get 命令默认情况下都尊重 TRAVIS_WORKER_DOCKER_HTTP_PROXYTRAVIS_WORKER_DOCKER_HTTPS_PROXY,这意味着所有软件包安装也将通过 HTTP 代理进行。如果不想这样做,请将您的 apt 软件包镜像列入白名单,方法是将其添加到 TRAVIS_WORKER_DOCKER_NO_PROXY 中,如下所示

export TRAVIS_WORKER_DOCKER_NO_PROXY='.ubuntu.com,packagecloud.io,.postgresql.org'

如何设置 LXD worker 特定设置 #

运行 lxd_install.sh 后,LXD Worker 配置将存储在 /var/snap/travis-worker/common/worker.env 中。

除了 Docker 参数之外,此页面上提到的所有参数都适用于 LXD。您可以在下面找到可用参数的列表

参数 定义
TRAVIS_WORKER_LXD_CPUS 定义 LXD 可以使用多少个 CPU,默认为 2
TRAVIS_WORKER_LXD_CPUS_BURST 定义如果 LXD 未在使用,是否可以使用所有 CPU,默认为 True
TRAVIS_WORKER_LXD_DISK LXD 磁盘大小限制,默认为 20Gb
TRAVIS_WORKER_LXD_ARCH_OVERRIDE 覆盖作业配置中定义的体系结构,默认情况下不存在。
TRAVIS_WORKER_LXD_MEMORY 定义每个容器可用的内存,默认为 4Gb
TRAVIS_WORKER_LXD_NETWORK 定义网络带宽,默认为 1Gb

联系企业支持 #

要联系我们,请发送邮件至 enterprise@travis-ci.com。如果可能,请尽可能多地包含以下信息

  • 问题描述 - 您观察到了什么?
  • 您已经尝试了哪些步骤?
  • 支持包(请参阅下表了解如何获取)
  • 所有 Worker 的日志文件(它们可以在 /var/log/upstart/travis-worker.log 中找到 - 请尽可能多地包含)
  • 如果构建失败或出错,请提供构建日志的文本文件
TCI 企业版版本 支持包
3.x 运行 kubectl kots admin-console -n [namespace] 以访问 https://#:8800 上的管理控制台
支持包生成说明可在“故障排除”菜单中找到,或直接访问:https://#:8800/app/tci-enterprise-kots/troubleshoot

选择后将出现生成支持包的命令
如果您愿意,[点击此处]() 获取手动生成支持包的命令。
2.x+ 您可以从 https://<your-travis-ci-enterprise-domain>:8800/support 获取。

自 2020 年第三季度发布公告以来,Travis CI 企业版的最新版本为 3.x 系列。版本 2.2 没有新的版本发布,并且自 2021 年 3 月以来支持补丁也已受到限制。对于 Travis CI 2.x 的现有用户,我们强烈建议升级到最新的 Travis CI 企业版 3.x。

您是否对您的设置进行了任何自定义?虽然我们可能能够查看某些信息(例如主机名、IaaS 提供商和许可证到期日期),但还有许多其他我们无法看到的信息,这些信息可能会导致某些内容无法正常工作。因此,我们想请您在支持请求中也回答以下问题(如果适用)

  • 您正在使用多少台机器/您的 Kubernetes 集群设置是什么?
  • 您是否使用配置管理工具(Chef、Puppet)?
  • 哪些其他服务与 Travis CI 企业版交互?
  • 您与 Travis CI 企业版一起使用哪个版本控制系统 (VCS)(例如 github.com、GitHub Enterprise 或 BitBucket Cloud)?

  • 如果您使用的是 GitHub Enterprise,请问是哪个版本?

我们期待着为您提供帮助!