Buildkite is a platform for running fast, secure, and scalable continuous integration pipelines on your own infrastructure.
The Buildkite Elastic CI Stack for AWS gives you a private, autoscalingBuildkite Agent cluster. Use it to parallelizelarge test suites across thousands of nodes, run tests and deployments for Linux or Windowsbased services and apps, or run AWS ops tasks.
See the Elastic CI Stack for AWS tutorial for a step-by-step guide, the Elastic CI Stack for AWS documentation, or the full list of recommended resources for detailed information.
Or jump straight in:
The current release is . See Releases for older releases.
Although the stack creates its own VPC by default, we highly recommend following best practice by setting up a separate development AWS account and using role switching and consolidated billing — see the Delegate Access Across AWS Accounts tutorial for more information.
If you want to use the AWS CLI, download config.json.example
, rename it to config.json
, and then run the below command:
aws cloudformation create-stack \
--output text \
--stack-name buildkite \
--template-url "https://s3.amazonaws.com/buildkite-aws-stack/latest/aws-stack.yml" \
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \
--parameters "$(cat config.json)"
Most features are supported across both Linux and Windows. See below for detailsof per-operating system support:
Feature | Linux | Windows |
---|---|---|
Docker |
|
|
Docker Compose |
|
|
AWS CLI |
|
|
S3 Secrets Bucket |
|
|
ECR Login |
|
|
Docker Login |
|
|
CloudWatch Logs Agent |
|
|
Per-Instance Bootstrap Script |
|
|
|
|
|
SSM Access |
|
|
Instance Storage (NVMe) |
|
|
SSH Access |
|
|
Periodic authorized_keys Refresh |
|
|
Periodic Instance Health Check |
|
|
git lfs |
|
|
Additional sudo Permissions |
|
|
RDP Access |
|
This repository hasn't been reviewed by security researchers so exercise caution and careful thought with what credentials you make available to your builds.
Anyone with commit access to your codebase (including third-party pull-requests if you've enabled them in Buildkite) will have access to your secrets bucket files.
Also keep in mind the EC2 HTTP metadata server is available from within builds, which means builds act with the same IAM permissions as the instance.
By default, CloudFormation will operate using the permissions granted to theidentity of the credentials used to initiate a stack deployment or update.
If you want to explicitly specify which actions CloudFormation can perform onyour behalf, you can either create your stack using credentials for an IAMidentity with limited permissions, or provide an AWS CloudFormation service role.
aws cloudformation deploy --template-file templates/service-role.yml --stack-name buildkite-elastic-ci-stack-service-role --region us-east-1 --capabilities CAPABILITY_IAM
To get started with customizing your own stack, or contributing fixes and features:
# Checkout all submodules
git submodule update --init --recursive
# Build all AMIs and render a cloud formation template - this requires AWS credentials (in the ENV)
# to build an AMI with packer
make build
# To create a new stack on AWS using the local template
make create-stack
# You can use any of the AWS* environment variables that the aws-cli supports
AWS_PROFILE="some-profile" make create-stack
# You can also use aws-vault or similar
aws-vault exec some-profile -- make create-stack
If you need to build your own AMI (because you've changed something in thepacker
directory), run packer with AWS credentials in your shell environment:
make packer
This will boot and image three AWS EC2 instances in your account’s us-east-1
default VPC:
We provide support for security and bug fixes on the current major release only.
If there are any changes in the master branch since the last tagged release, weaim to publish a new tagged release of this template at the end of each month.
We support all AWS Regions, except China and US GovCloud.
We aim to support new regions within one month of general availability.
We build and deploy the following AMIs to all our supported regions:
The Elastic CI Stack template published from the master branchtracks the latest Buildkite Agent release.
You may wish to preview any updates to your stack from this templateusing a CloudFormation Stack Change Setto decide whether to apply it.
To gain a better understanding of how Elastic CI Stack works and how to use it most effectively and securely, see the following resources:
Feel free to drop an email to support@buildkite.com with questions. It helps us if you can provide the following details:
# List your stack parameters
aws cloudformation describe-stacks --stack-name MY_STACK_NAME \
--query 'Stacks[].Parameters[].[ParameterKey,ParameterValue]' --output table
Provide us with logs from CloudWatch Logs:
/buildkite/elastic-stack/{instance-id}
/buildkite/systemd/{instance-id}
You can also drop by #aws-stack
and #aws
channels in Buildkite Community Slack and ask your question!
See Licence.md (MIT)
CloudFormation CloudFormation归类在Management & Governance下,它有很多模板可以直接使用,模板实际上是包含配置的文本文件,使用模板可以用很简单的操作可以创建,重复创建和设置很复杂的应用。 这里做一个简单的测试,点Create stack,取名: XiongStack,再使用Use a sample template,使用已有的模板,创建一个Word
设置Elasticsearch 本节包括如何设置Elasticsearch并使其运行的信息,包括: 下载 安装 开始 配置 支持的平台上 这里提供了官方支持的操作系统和jvm的矩阵:Support matrix。Elasticsearch在列出的平台上进行了测试,但也有可能在其他平台上运行。 Java (JVM)版本 Elasticsearch使用Java构建,并在每个发行版中包含JDK维护者(G
aws联合用户 This write-up outlines methods of working with the AWS Secure Token Service (STS) and Federated user accounts, where Google has been established as the Identity Provider. It is based on a rece
Elastic Stack 是一系列开源产品的合集,包括 Elasticsearch、Kibana、Logstash 以及 Beats 等等,能够安全可靠地获取任何来源、任何格式的数据,并且能够实时地对数据进行搜索、分析和可视化。 Kibana —— 实现数据可视化,导览 Elastic Stack。 Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供你全方位配置和管理 Elas
BitNami Stack for Piwik 是 Piwik 的一键安装套件,包括预先配置好的 Apache, MySQL, PHP, and phpMyAdmin
Min Stack 描述 Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. t
Implement Stack using Queues 描述 Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Get the top
Elastic 是一个简单的 CSS 框架用来对网页进行布局。Elastic 可实现各种各样常见的网页布局,如下图所示: 常见的网页布局示例请看这里,所有的这些都是通过CSS进行控制的,非表格。 以下是一些演示网站:
它代表了一个后进先出的对象集合。 当您需要后进先出的项目访问时使用它。 当你在列表中添加一个项目时,它被称为推送项目,当你删除它时,它被称为弹出项目。 堆栈类的属性和方法 下表列出了Stack类的一些常用properties - Sr.No 财产和描述 1 Count 获取Stack中包含的元素数。 下表列出了Stack类的一些常用methods - Sr.No. 方法名称和目的 1 Public