diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-10-08 15:40:48 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-10-08 15:40:48 +0200 |
commit | 687e0059d552d39b5bd3cf1218026ed96c2c4adc (patch) | |
tree | 003aee9256d7bb443f5cf99ab02e53b940138741 /modules/virtualisation | |
parent | 5c17d7d2a6485e4134def39334328396c5c12424 (diff) | |
download | nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar.gz nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar.bz2 nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar.lz nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar.xz nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.tar.zst nixlib-687e0059d552d39b5bd3cf1218026ed96c2c4adc.zip |
Generate a VirtualBox appliance (in OVF format) instead of a disk image
Diffstat (limited to 'modules/virtualisation')
-rw-r--r-- | modules/virtualisation/virtualbox-image.nix | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/virtualisation/virtualbox-image.nix b/modules/virtualisation/virtualbox-image.nix index bd14a7ffda00..306367d0ef52 100644 --- a/modules/virtualisation/virtualbox-image.nix +++ b/modules/virtualisation/virtualbox-image.nix @@ -16,6 +16,7 @@ with pkgs.lib; ''; postVM = '' + echo "creating VirtualBox disk image..." ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vdi $diskImage $out/disk.vdi rm $diskImage ''; @@ -74,6 +75,31 @@ with pkgs.lib; '' ); + system.build.virtualBoxOVA = pkgs.runCommand "virtualbox-ova" + { buildInputs = [ pkgs.linuxPackages.virtualbox ]; + vmName = "NixOS ${config.system.nixosVersion} (${pkgs.stdenv.system})"; + fileName = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.ova"; + } + '' + echo "creating VirtualBox VM..." + export HOME=$PWD + VBoxManage createvm --name "$vmName" --register \ + --ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"} + VBoxManage modifyvm "$vmName" \ + --memory 1536 --acpi on --vram 10 \ + --nictype1 virtio --nic1 nat \ + --audiocontroller ac97 --audio alsa \ + --rtcuseutc on \ + --usb on --mouse usbtablet + VBoxManage storagectl "$vmName" --name SATA --add sata --sataportcount 4 --bootable on --hostiocache on + VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \ + --medium ${config.system.build.virtualBoxImage}/disk.vdi + + echo "exporting VirtualBox VM..." + mkdir -p $out + VBoxManage export "$vmName" --output "$out/$fileName" + ''; + fileSystems."/".device = "/dev/disk/by-label/nixos"; boot.loader.grub.version = 2; |