Update AMI creation script

This commit is contained in:
Eelco Dolstra
2016-04-05 11:25:12 +02:00
parent 2bbae9696a
commit 69c746d06b
+15 -7
View File
@@ -8,14 +8,15 @@ echo "keeping state in $stateDir"
mkdir -p $stateDir mkdir -p $stateDir
version=$(nix-instantiate --eval --strict '<nixpkgs>' -A lib.nixpkgsVersion | sed s/'"'//g) version=$(nix-instantiate --eval --strict '<nixpkgs>' -A lib.nixpkgsVersion | sed s/'"'//g)
echo "NixOS version is $version" major=${version:0:5}
echo "NixOS version is $version ($major)"
rm -f ec2-amis.nix rm -f ec2-amis.nix
for type in hvm pv; do for type in hvm pv; do
link=$stateDir/$type link=$stateDir/$type
imageFile=$link/nixos.img imageFile=$link/nixos.qcow2
system=x86_64-linux system=x86_64-linux
arch=x86_64 arch=x86_64
@@ -61,12 +62,19 @@ for type in hvm pv; do
# Bundle the image. # Bundle the image.
imageDir=$stateDir/$type-bundled imageDir=$stateDir/$type-bundled
# Convert the image to raw format.
rawFile=$stateDir/$type.raw
if ! [ -e $rawFile ]; then
qemu-img convert -f qcow2 -O raw $imageFile $rawFile.tmp
mv $rawFile.tmp $rawFile
fi
if ! [ -d $imageDir ]; then if ! [ -d $imageDir ]; then
rm -rf $imageDir.tmp rm -rf $imageDir.tmp
mkdir -p $imageDir.tmp mkdir -p $imageDir.tmp
ec2-bundle-image \ ec2-bundle-image \
-d $imageDir.tmp \ -d $imageDir.tmp \
-i $imageFile --arch $arch \ -i $rawFile --arch $arch \
--user "$AWS_ACCOUNT" -c "$EC2_CERT" -k "$EC2_PRIVATE_KEY" --user "$AWS_ACCOUNT" -c "$EC2_CERT" -k "$EC2_PRIVATE_KEY"
mv $imageDir.tmp $imageDir mv $imageDir.tmp $imageDir
fi fi
@@ -75,14 +83,14 @@ for type in hvm pv; do
if ! [ -e $imageDir/uploaded ]; then if ! [ -e $imageDir/uploaded ]; then
echo "uploading bundle to S3..." echo "uploading bundle to S3..."
ec2-upload-bundle \ ec2-upload-bundle \
-m $imageDir/nixos.img.manifest.xml \ -m $imageDir/$type.raw.manifest.xml \
-b "$bucket/$bucketDir" \ -b "$bucket/$bucketDir" \
-a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" \ -a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" \
--location EU --location EU
touch $imageDir/uploaded touch $imageDir/uploaded
fi fi
extraFlags="$bucket/$bucketDir/nixos.img.manifest.xml" extraFlags="$bucket/$bucketDir/$type.raw.manifest.xml"
else else
@@ -90,7 +98,7 @@ for type in hvm pv; do
# to upload a huge raw image. # to upload a huge raw image.
vhdFile=$stateDir/$type.vhd vhdFile=$stateDir/$type.vhd
if ! [ -e $vhdFile ]; then if ! [ -e $vhdFile ]; then
qemu-img convert -O vpc $imageFile $vhdFile.tmp qemu-img convert -f qcow2 -O vpc $imageFile $vhdFile.tmp
mv $vhdFile.tmp $vhdFile mv $vhdFile.tmp $vhdFile
fi fi
@@ -209,7 +217,7 @@ for type in hvm pv; do
prevRegion="$region" prevRegion="$region"
fi fi
echo " \"15.09\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix echo " \"$major\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix
done done
done done