VM服务

本节概述了如何为Circleci安装设置和自定义VM服务。VM服务控制如何运行executor (Linux和Windows映像)和远程Docker作业。

此页面上的信息仅适用于AWS上的安装。请联系您的Circleci账户代表,要求VM服务指导静态安装。

概述

VM服务使用户能够在AWS上安装Circleci服务器,运行作业使用远程码头环境遗嘱执行人

在Circleci服务器上配置VM服务
图1. VM服务设置
管理控制台设置的任何更改都需要在Circleci应用程序重新启动时停机。

以下部分将通过上面的VM服务屏幕截图显示中显示的设置和选项运行。

要配置VM服务,在管理控制台设置中选择AWS EC2选项是最佳实践。这将允许CircleCI运行远程Docker和执行专用EC2实例的执行者作业。

1.供应AMIS.

您可以提供自定义Amazon Machine Image(AMIS)用于VM服务,如下面的部分所述。如果您没有提供任何自定义图像,则所有执行程序和远程Docker作业将在使用我们的默认AMI之一(下面列出的)内构建的实例运行,其中ubuntu 16.04,Docker版本18.06.3以及一系列常用语言,工具和框架。看看picard-vm-image我们的Image-Builder存储库的分支获取详细信息。要运行Windows作业,必须提供Windows AMI,否则Windows作业将无法运行。

默认VM服务Linux Amis

  • Ap-northeast-1: ami-0e49af0659db9fc5d

  • AP-NORTHEATE-2:AMI-03E485694BC2DA249

  • AP-South-1:AMI-050370E57DFC6574A

  • AP-SOPTEAST-1:AMI-0A75FF7B28897268C

  • AP-SOPTEAST-2:AMI-072B1B45245549586

  • CA-Central-1:AMI-0E44086F0F518AD2D

  • Eu-central-1: ami-09cbcfe446101b4ea

  • 一来:ami-0d1cbc2cc3075510a

  • EU-West-2:AMI-0BD22DCDC30FA260B

  • Sa-east-1: ami - 038596 - d5a4fc9893b

  • Us-east-1: ami - 0843 ca047684abe87

  • Us-east-2: ami-03d60a35576647f63

  • Us-West-1:AMI-06F6FB13D9CCF93D

  • US-WIST-2:AMI-0B5B8AD02F405A909

定制和创建VM服务映像

为您的安装定制VM服务映像将允许您指定Docker和Docker组合的版本,以及安装可能是CI/CD管道的一部分的任何附加依赖项。可以为使用remote Docker或执行者,以及可以为Linux和Windows指定单独的ami。值得注意的是,如果您选择不定制基本Linux映像,开发人员可能需要配置作业,以在每个项目的每个提交上运行额外的安装和更新步骤118金宝博娱乐城config.yml.文件。

从服务器v2.18,您可以为两者提供单意自定义Linux AMI和远程Docker作业使用仅在下面标记为“1”的字段,或者通过在标记为“2”字段中的第二个自定义AMI,您可以为每个标记为“2”。

自定义VM服务图像
图2.自定义VM服务图像

定制Linux AMI

先决条件

创建自定义Linux ami

  1. 克隆我们的图像建设者repo:https://github.com/circleci/image-builder/tree/picard-vm-image.

  2. 打开AWS-VM.JSON.在您的编辑中。这提供了一个基线模板,用于构建带有包装器的AMI。AWS访问密钥ID和秘密访问密钥需要上传。您可以找到有关管理AWS身份验证的更多信息这里。如果基线模板太有限,您可以找到其他AWS配置选项这里

  3. (可选)考虑限制ami_groups.仅在您的组织内。请参阅[packer文档](https://packer.io/docs/builders/amazon-ebs.html#ami_groups.)以获得有关AMI组的更多信息。

  4. 我们提供了[预配置的依赖项]列表(https://github.com/circleci/image-builder/blob/picard-vm-image/provision.sh)。您可以自定义configure .sh脚本以满足您的环境的需要。

  5. packer构建aws-vm.json

创建了AMI后,将AMI ID复制到上面屏幕截图中显示的相关字段中。

创建一个Windows AMI

在Circleci服务器v2.18.3中引入

创建Windows映像并在VM服务设置下指定它,允许您的用户在专用Windows VM上运行作业。要通过我们列出的步骤创建Windows映像运行Image Builder回购,然后复制生成的AMI ID并粘贴到管理控制台设置中的自定义Windows VM AMI字段中,在VM Provider下(例如,)。

Windows映像是在CircleCI上构建的,因此我们建议您在安装完成并运行后运行此过程。或者,您可以使用任何其他的CircleCI帐户(包括我们的托管云服务)来生成映像。

2.定义实例类型

有两个字段用于定义您希望使用的AWS实例类型。第一个用于默认实例类型,第二个用于设置在作业指定时使用的实例类型资源类。

3.按需和预期的实例

远程码头和executor实例是按需启动的。也可以预先分配实例以保持运行状态,为远程Docker和要运行的作业(请参阅图1中的最后两个字段)。

如果Docker层缓存(DLC)将被使用,VM服务实例需要旋转按需。确保可能发生这种情况,要么确保所有预先分配的实例都在使用中,要么设置远程Docker和预先分配的实例字段0.
在使用预先分配的实例时,请注意,cron作业计划每天循环使用这些实例一次,以确保它们不会处于不可工作的状态。

作业和实例管理

作业使用远程Docker环境运行,或者executor是由Nomad服务器调度并发送到你的Nomad客户端,并传递到远程Docker或从那里。这意味着在远程Docker上运行作业可以使用Nomad CLI以通常的方式监视executor。看到我们的Nomad集群操作简介有关Nomad命令和术语的更多信息。

一个cron作业计划至少每天循环一次所有缺省和预先分配的实例,以确保实例不会最终处于不可运行的状态。

访问远程Docker和实例

默认情况下,私有IP地址用于与VM服务实例进行通信。例如,如果需要授予更广泛的访问权限,例如允许开发人员SSH访问权限,可以使用VM Provider高级设置中的复选118金宝博娱乐城框设置此操作。

VM提供程序高级设置
图3.允许访问VM服务实例