GitLab Runner应该实际在哪里运行?

时间:2019-01-29 09:56:17

标签: gitlab-ci gitlab-ci-runner

我正在尝试使用GitLab CI建立一个持续集成/部署管道,并且我正在努力了解(并且没有在文档中找到任何信息)有关GitLab Runner应该实际居住的地方。我应该在本地计算机上运行一个吗?是否应该有一个仅托管运行器的服务器?

据我所知,运行程序的目的是执行由提交触发的作业。提交后,GitLab Runner将尝试执行.gitlab-ci.yml文件中定义的作业。

我知道这些工作可以做很多事情,但是作为起点,我只想通过SSH进入服务器并部署我的代码。

我的困惑来自于不了解Runner应该实际生活和运行的推荐位置是什么?将其存储在我的本地计算机上似乎存在潜在的问题,因为这将取决于我的计算机是否可用并且可以用于部署工作。这是否意味着我们仅需要赛跑者本身使用另一台服务器?

2 个答案:

答案 0 :(得分:1)

正如文档所述,GitLab运行程序是隔离的(虚拟)机器,它们通过GitLab CI的协调器API来接管工作。它们可以安装在每个发行版中。在配置之前,请从管理/运行者页面获取运行者令牌。然后向

注册

sudo gitlab-runner register

您可以在VPS上的Docker映像中使用GitLab Runner,例如AWS。这是 runners-machine 的示例。驱动程序设置为 amazonec2 ,有多个选项,例如访问密钥区域 sec-group 。 / p>

  [runners.machine]
    IdleCount = 1
    IdleTime = 1800
    MaxBuilds = 10
    OffPeakPeriods = [
      "* * 0-9,18-23 * * mon-fri *",
      "* * * * * sat,sun *"
    ]
    OffPeakIdleCount = 0
    OffPeakIdleTime = 1200
    MachineDriver = "amazonec2"
    MachineName = "gitlab-docker-machine-%s"
    MachineOptions = [
      "amazonec2-access-key=XXXX",
      "amazonec2-secret-key=XXXX",
      "amazonec2-region=us-central-1",
      "amazonec2-vpc-id=vpc-xxxxx",
      "amazonec2-subnet-id=subnet-xxxxx",
      "amazonec2-zone=x",
      "amazonec2-use-private-address=true",
      "amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
      "amazonec2-security-group=xxxxx",
      "amazonec2-instance-type=m4.2xlarge",
    ]

[runners.docker] 部分中设置默认Docker映像。

答案 1 :(得分:1)

在哪里?好吧,只要您想要。 Gitlab运行程序以拉模式运行,即运行程序联系服务器的Web api并检查作业,它还联系服务器以上传所有日志。这意味着gitlab运行程序可以位于NAT之后,也可以非常动态。

SSH执行程序通过从运行程序到目标的SSH连接来运行。这意味着带有跑步者的机器必须具有到目标服务器的路由。

关于应该在哪里跑步?好吧,这取决于您。也许您需要偶尔在笔记本电脑上运行它以连接到本地VM,也许您需要一台功能强大的云服务器,或者您想在地下室的旧服务器上运行便宜的计算机。也许全部三个。