VM服务
本节概述了如何为Circleci安装设置和自定义VM服务。VM服务控制如何机
运行executor (Linux和Windows映像)和远程Docker作业。
此页面上的信息仅适用于AWS上的安装。请联系您的Circleci账户代表,要求VM服务指导静态安装。 |
概述
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”。

定制Linux AMI
先决条件
AWS访问密钥ID和秘密访问密钥
创建自定义Linux ami
克隆我们的图像建设者repo:https://github.com/circleci/image-builder/tree/picard-vm-image.
打开
AWS-VM.JSON.
在您的编辑中。这提供了一个基线模板,用于构建带有包装器的AMI。AWS访问密钥ID和秘密访问密钥需要上传。您可以找到有关管理AWS身份验证的更多信息这里。如果基线模板太有限,您可以找到其他AWS配置选项这里。(可选)考虑限制
ami_groups.
仅在您的组织内。请参阅[packer文档](https://packer.io/docs/builders/amazon-ebs.html#ami_groups.)以获得有关AMI组的更多信息。我们提供了[预配置的依赖项]列表(https://github.com/circleci/image-builder/blob/picard-vm-image/provision.sh)。您可以自定义configure .sh脚本以满足您的环境的需要。
跑
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金宝博娱乐城框设置此操作。
