aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xshare/hydractl/provision-img34
1 files changed, 31 insertions, 3 deletions
diff --git a/share/hydractl/provision-img b/share/hydractl/provision-img
index 9b9cdb2..8522466 100755
--- a/share/hydractl/provision-img
+++ b/share/hydractl/provision-img
@@ -22,12 +22,13 @@ hydra_config_load
# Make sure there is provision config.
function hydra_provision_config {
- hydra_user_config image /var/cache/qemu/debian.img "Destination image"
+ hydra_user_config image /var/cache/qemu/debian/box.img "Destination image"
hydra_user_config size 3G "Image size"
+ hydra_user_config format qcow2 "Image format: raw or qcow2"
hydra_user_config hostname machine "Hostname"
hydra_user_config domain example.org "Domain"
hydra_user_config arch amd64 "System arch"
- hydra_user_config version jessie "Distro version"
+ hydra_user_config version stretch "Distro version"
hydra_user_config mirror http://http.debian.net/debian/ "Debian mirror"
}
@@ -37,11 +38,38 @@ hydra_provision_config_load $1
# Get config parameters
hydra_provision_config
+# Check
+if [ -e "$image" ]; then
+ echo "error: $image already exists."
+ exit 1
+fi
+
+# Ensure base folder exists
+hydra_sudo_run mkdir -p `dirname $image`
+
+#
+# vmdebootstrap version
+#
# Check for requirements
for req in vmdebootstrap mbr; do
hydra_install_package $req
done
+# Image format
+if [ "$format" == "qcow2" ]; then
+ format="--convert-qcow2"
+else
+ formt=""
+fi
+
# Run
hydra_sudo_run vmdebootstrap --verbose --image=$image --size=$size --distribution=$version \
- --mirror=$mirror --arch=$arch --hostname=$hostname.$domain
+ --mirror=$mirror --arch=$arch --hostname=$hostname.$domain \
+ --grub $format
+
+# Fix permissions
+hydra_sudo_run chown -R `whoami`. `dirname $image`
+
+# Cleanup
+hydra_sudo_run rm debootstrap.log
+hydra_sudo_run rm ${image}.raw