Configuring VM Service
This document outlines how to set up VM service for your CircleCI installation, as well as how customize your own VM service images.
To configure VM service, it is best practice to select the AWS EC2 option in the Replicated Management Console, which will allow CircleCI to run remote Docker and
machine executor jobs using dedicated EC2 instances.
If you do not provide a custom Amazon Machine Image (AMI) for VM service,
machine executor and remote Docker jobs on Server will run using the same machine image that we provide by default on Cloud: an Ubuntu 14.04 image with Docker version
17.03.0-ce and docker-compose version
1.9.0, along with a selection of common languages, tools, and frameworks. See the
picard-vm-image branch of our image-builder repository for details.
It may be beneficial to customize the VM service image for your installation of CircleCI; it will allow you to specify other versions of Docker and docker-compose, as well as install any additional dependencies that may be part of your CI/CD pipeline. Without doing so, you will likely need to run these additional install and update steps on every commit as part of your
To build custom VM service images, use the following repository branch: https://github.com/circleci/image-builder/tree/picard-vm-image.
packer build aws-vm.json command after filling in the required groups in
aws-vm.json. It requires an access key and secret key to upload. Handle the key and secret process according to the your requirements, but consider restricting the
ami_groups to only within your organization.
Refer to https://packer.io/docs/builders/amazon-ebs.html#ami_groups for more information and see https://github.com/circleci/image-builder/blob/picard-vm-image/provision.sh for details about settings.
You will need to associate the
circleci user with the image you want to use as shown in the following example: https://github.com/circleci/image-builder/blob/picard-vm-image/aws_user_data.