Skip to content

Building CentOS AMI

Amos Jianjun Kong edited this page Dec 15, 2016 · 8 revisions

Prerequire

CentOS7 - AMI build script only works on CentOS7.

AMI variables

Create dist/ami/variables.json with following format, specify AMI variables:

{
    "access_key": "xxx",
    "secret_key": "xxx",
    "subnet_id": "subnet-xxx",
    "security_group_id": "sg-xxx",
    "region": "us-east-1",
    "associate_public_ip_address": "true",
    "instance_type": "c4.xlarge",
    "ami_prefix": "YOUR_NAME-"
}

You can use dist/ami/variables.json.example as template.

Build AMI from locally built rpm

If you want to make AMI with modified scylla source code, this is what you want. Please be sure everything is committed, RPM build script drops uncommitted files.

To build AMI from locally built rpm, run

./dist/ami/build_ami.sh --localrpm

Since build script skips building rpm when it's already exists on dist/ami/files/, please rm dist/ami/files/scylla-server.x86_64.rpm when you want to build AMI with new rpm.

Build AMI from yum repository

To build AMI from unstable yum repository, run

./dist/ami/build_ami.sh --repo http://downloads.scylladb.com.s3.amazonaws.com/rpm/unstable/centos/master/latest/scylla.repo

To build AMI from release yum repository, run

./dist/ami/build_ami.sh

Build AMI with personal branch

Method 1

sudo rm -rf scylla_new
git clone https://github.com/scylladb/scylla scylla_new
cd scylla_new

## different branch uses different submodules, first checkout to right scylla branch (same as your branch)
git checkout -b branch-1.5 remotes/origin/branch-1.5

## init the submoudles
git submodule init

## checkout your own branch
git remote add glommer git@github.com:glommer/scylla.git
git fetch glommer
git checkout -b dev_branch remotes/glommer/for-amos-1.5-preview

## update submodules (which is using the right url)
git submodule update --init --recursive

sudo ./dist/ami/build_ami.sh --localrpm

Method 2

sudo rm -rf scylla_new
git clone https://github.com/scylladb/scylla scylla_new
cd scylla_new
git submodule init
git submodule update --init --recursive

## add scylla-seastar of upstream
cd seastar
git remote add scylla-seastar  git@github.com:scylladb/scylla-seastar.git
git fetch scylla-seastar
cd -

git remote add glommer git@github.com:glommer/scylla.git
git fetch glommer
git checkout -b dev_branch remotes/glommer/for-amos-1.5-preview

## reupdate submodules
git submodule update --init --recursive

sudo ./dist/ami/build_ami.sh --localrpm
Clone this wiki locally