Update AMI creation script
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user