diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2017-10-06 18:21:14 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2017-10-06 18:21:14 -0300 |
commit | 789bd411ba3aaf4a48d461f60d6f2bca8c2dc687 (patch) | |
tree | 909f3ccef0e8722551b201e1c9299a7d60fa3e5b | |
parent | b9331718efcced4573551628425168aee647eb12 (diff) | |
download | kvmx-789bd411ba3aaf4a48d461f60d6f2bca8c2dc687.tar.gz kvmx-789bd411ba3aaf4a48d461f60d6f2bca8c2dc687.tar.bz2 |
Adds kvmx_install
-rw-r--r-- | README.md | 28 | ||||
-rwxr-xr-x | kvmx | 27 |
2 files changed, 41 insertions, 14 deletions
@@ -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 <project-name> ~/path/to/install.iso - # Create the environment - kvmx init <guest> /var/cache/qemu/<guest> - qemu-img create -f qcow2 /var/cache/qemu/<guest>box.img 10G - - # Install the Operating System - kvm -m 2048 -net nic,model=virtio -net user -drive file=/var/cache/qemu/<guest>/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 @@ -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 <installation-media>" + 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 |