企业 Worker 启动和调试容器

停止和启动 Worker #

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

Travis CI Worker 安装为 systemd 服务。以下命令可用于检查服务状态并启动/停止服务

$ sudo systemctl status travis-worker
Sh
$ sudo systemctl start travis-worker
Sh
$ sudo systemctl stop travis-worker
Sh

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

Travis CI Worker 安装为 upstart 服务。以下命令可用于检查服务状态并启动或停止它。

$ sudo status travis-worker
travis-worker start/running, process 9622
Sh
$ sudo stop travis-worker
travis-worker stop/waiting
Sh
$ sudo start travis-worker
travis-worker start/running, process 16339
Sh

当使用sudo stop travis-worker停止 worker 时,它将使用KILL信号关闭。这将停止所有当前正在运行的构建作业,并在 worker 重新启动时将其排队。如果您希望等待某些或所有作业成功完成,则可以发出SIGINT。这与sleep一起确保某些或所有活动作业可以完成(取决于您的队列长度)。sleep完成后,必须通过sudo stop travis-worker关闭 worker。

Worker 停止和启动示例 #

travis-worker 根据它接收到的信号表现出不同的行为。例如,SIGINT会清空队列,它会给 travis-worker 足够的时间来完成所有仍在进行的作业,但它不会接受任何新的作业。

SIGKILL另一方面会立即关闭 travis-worker 并取消所有当前正在运行的作业。如果您随后再次启动 worker,所有先前排队和正在运行的作业将再次重新排队,以便像往常一样完成。

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

使用 Ubuntu 16.04 作为主机操作系统,travis-works 在 Docker 容器内运行,因此现在通过systemctl启动和停止 worker。

$ sudo systemctl start travis-worker
Sh
$ sudo systemctl stop travis-worker
Sh
$ sudo systemctl status travis-worker
Sh

要发送SIGINT信号,请运行以下命令

sudo docker kill -s SIGINT travis-worker
Sh

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

在此示例中,使用sleep 60允许作业在 worker 停止之前完成。实际值取决于当前作业队列的长度以及作业平均完成所需的时间,因此您可能需要根据需要进行调整。

$ sudo status travis-worker
travis-worker start/running, process 5671
$ sudo kill -s INT 5671
$ sleep 60
$ sudo status travis-worker
travis-worker start/post-stop, process 9405
$ sudo stop travis-worker
Sh

启动 Worker 调试容器 #

要在一个 Travis CI 企业版 Worker 主机上启动一个构建容器,您可以执行以下操作

# start a container and grab the port
id=$(docker -H tcp://0.0.0.0:4243 run -d -p 22 travis:php /sbin/init)
port=$(docker -H tcp://0.0.0.0:4243 port $id 22 | sed 's/.*://')

# ssh into the container (the default password is travis)
ssh travis@localhost -p $port

# stop and remove the container
docker -H tcp://0.0.0.0:4243 kill $id
docker -H tcp://0.0.0.0:4243 rm $id
Sh

(如果 travis-worker 在 Ubuntu 16.04 上运行,则-H tcp://0.0.0.0:4243不再需要)

联系企业支持 #

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

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

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