Update the S3 AMI generation script

This commit is contained in:
Eelco Dolstra 2013-01-24 19:37:42 +01:00
parent d241240ba4
commit 3e4f053eb5

View file

@ -1,26 +1,27 @@
#! /bin/sh -e
nixos=$(nix-instantiate --find-file nixos)
revision=$(cd $nixos; git rev-parse --short HEAD)
echo "NixOS revision is $revision"
export NIXOS_CONFIG=$nixos/modules/virtualisation/amazon-config.nix
version=$(nix-instantiate --eval-only '<nixos>' -A config.system.nixosVersion | sed s/'"'//g)
echo "NixOS version is $version"
buildAndUploadFor() {
system="$1"
arch="$2"
echo "building $system image..."
NIXOS_CONFIG=$nixos/modules/virtualisation/amazon-config.nix nix-build "$nixos" \
nix-build '<nixos>' \
-A config.system.build.amazonImage --argstr system "$system" -o ec2-ami
ec2-bundle-image -i ./ec2-ami/nixos.img --user "$AWS_ACCOUNT" --arch "$arch" \
-c "$EC2_CERT" -k "$EC2_PRIVATE_KEY"
for region in eu-west-1 us-east-1 us-west-1; do
for region in eu-west-1 us-east-1 us-west-1 us-west-2; do
echo "uploading $system image for $region..."
name="$(echo nixos-$arch-r$revision | tr '[A-Z]_' '[a-z]-')"
bucket="$name-$region"
name=nixos-$version-$arch-s3
bucket="$(echo $name-$region | tr '[A-Z]_' '[a-z]-')"
if [ "$region" = eu-west-1 ]; then s3location=EU;
elif [ "$region" = us-east-1 ]; then s3location=US;
@ -28,7 +29,8 @@ buildAndUploadFor() {
fi
ec2-upload-bundle -b "$bucket" -m /tmp/nixos.img.manifest.xml \
-a "$AWS_ACCESS_KEY_ID" -s "$AWS_SECRET_ACCESS_KEY" --location "$s3location"
-a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" --location "$s3location" \
--url http://s3.amazonaws.com
kernel=$(ec2-describe-images -o amazon --filter "manifest-location=*pv-grub-hd0_1.03-$arch*" --region "$region" | cut -f 2)
echo "using PV-GRUB kernel $kernel"
@ -38,7 +40,7 @@ buildAndUploadFor() {
echo "AMI ID is $ami"
echo "$system" "$region" "$ami" >> amis
echo $ami >> $region.s3.ami-id
ec2-modify-image-attribute --region "$region" "$ami" -l -a all
done