From 789bd411ba3aaf4a48d461f60d6f2bca8c2dc687 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 6 Oct 2017 18:21:14 -0300 Subject: Adds kvmx_install --- README.md | 28 +++++++++++++++------------- kvmx | 27 ++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 52a64e7..0ae49a4 100644 --- a/README.md +++ b/README.md @@ -58,24 +58,26 @@ resides. ## Manually creating a guest Alternativelly, you might create a new one by hand. To do so, proceed as usual -with `kvmx init` and `kvmx edit` acording to the Basic Usage stated above. +with `kvmx init` and `kvmx edit` acording to the Basic Usage stated above and +then type -Then, before, doing `kvmx up`, do something like the following example: + kvmx install ~/path/to/install.iso - # Create the environment - kvmx init /var/cache/qemu/ - qemu-img create -f qcow2 /var/cache/qemu/box.img 10G - - # Install the Operating System - kvm -m 2048 -net nic,model=virtio -net user -drive file=/var/cache/qemu//box.img -cdrom ~/path/to/install.iso +This will boot and installation media with you guest's disk available for +regular system install. If you want OpenSSH functionality, make sure to create an user and set a password -related to the configuration present at the project's `kvmxfile`. Also, make sure -to to create an OpenSSH keypair for this virtual machine and put the public key -into the guest user's home folder. Passwordless sudo might also be desired for the -full development functionality. +related to the configuration present at the project's `kvmxfile`. + +Also, make sure to to create an OpenSSH keypair for this virtual machine and +put the public key into the guest user's home folder. That can be done simply +by cloning `kvmx` repo inside the guest and installing the provided insecure +key into place (once the machine is fully acessible via `kvmx ssh` you can +rotate the keys with the `rotate_sshkeys` action). + +Passwordless sudo might also be desired for the full development functionality. -Test your new system with +You can test your new system with kvm -m 2048 -net nic,model=virtio -net user -drive file=box.img diff --git a/kvmx b/kvmx index 2ed3dd4..0b8dc14 100755 --- a/kvmx +++ b/kvmx @@ -184,7 +184,8 @@ function __kvmx_initialize { mkdir -p $STATE_DIR $LOG_DIR - if [ ! -e "$image" ] && [ "$ACTION" != "up" ] && [ "$ACTION" != "purge" ] && [ "$ACTION" != "destroy" ]; then + if [ ! -e "$image" ] && [ "$ACTION" != "up" ] && [ "$ACTION" != "purge" ] \ + && [ "$ACTION" != "destroy" ] && [ "$ACTION" != "install" ]; then echo "$BASENAME: file not found: $image" exit 1 fi @@ -1295,6 +1296,30 @@ function kvmx_mv { kvmx_rename $* } +# Install system +function kvmx_install { + local media="$3" + + if [ -z "$media" ]; then + echo "usage: $BASENAME install $VM " + exit 1 + elif [ ! -e "$media" ]; then + echo "$BASENAME: file not found: $media" + exit 1 + fi + + if [ -z "$memory" ]; then + memory="2048" + fi + + if [ ! -e "$image" ]; then + echo "Creating $image with size $size..." + qemu-img create -f qcow2 $image $size + fi + + kvm -m $memory -net nic,model=virtio -net user -drive file=$image -cdrom $media +} + # Dispatch if type kvmx_$ACTION 2> /dev/null | grep -q "kvmx_$ACTION ()"; then __kvmx_initialize -- cgit v1.2.3