Category:Virtualization: Difference between revisions

imported>Nix
basic Virtualization guide page
 
Refactor page: split tables, improve introduction
 
(16 intermediate revisions by 7 users not shown)
Line 1: Line 1:
This category page exists to list resources related to <strong>virtualisation</strong> in the Nix ecosystem.
== Overview ==
== Overview ==


This guide page exists to point out resources related to virtualization in the Nix ecosystem.
You can use the following technologies for classic virtualisation on NixOS. You can also use [[:Category:Container|containers]], though they come with their own advantages and drawbacks.
 
=== Virtualizing NixOS ===
 
This section is for information about running NixOS as a guest virtual machine.
 
==== VirtualBox ====
 
NixOS.org hosts an [https://nixos.org/download.html#nixos-virtualbox official VirtualBox virtual appliance image] in OVA format.
 
==== VMware ====
 
See [[VMware]] for help using VMware to virtualize NixOS.
 
 
=== NixOS as a VM host ===
 
This section covers if you want to run virtual machines from within Nix(OS).


==== VirtualBox ====
* QEMU/KVM (see [[Virt-manager]])
* [[VirtualBox]]
* [[VMware]]
* The [[Xen Project Hypervisor]]


See [[VirtualBox]] for more.
{| class="wikitable"
|+Installing a hypervisor on the host system.
!Hypervisor
!Code snippet to be added to <code>configuration.nix</code>
|-
|QEMU/KVM
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.libvirtd.enable = true;


  # if you use libvirtd on a desktop environment
  programs.virt-manager.enable = true; # can be used to manage non-local hosts as well
}
</nowiki>
}}
|-
|Xen Project Hypervisor
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.xen.enable = true;
}
</nowiki>
}}
|-
|VirtualBox
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.virtualbox.host.enable = true;
  users.extraGroups.vboxusers.members = [ "username" ];
 
  # Non-free Extension Pack
  nixpkgs.config.allowUnfree = true;
  virtualisation.virtualbox.host.enableExtensionPack = true;
}
</nowiki>
}}
|-
|VMware
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.vmware.host.enable = true;
}
</nowiki>
}}
|}


{| class="wikitable"
|+Installing the appropriate guest utilities on a virtualised system.
!Hypervisor the guest is running on
!Code snippet to be added to the guest's <code>configuration.nix</code>
|-
|QEMU/KVM
|{{file|configuration.nix|nix|
<nowiki>
{
  services.qemuGuest.enable =true;
  services.spice-vdagentd.enable = true;
}
</nowiki>
}}
|-
|VirtualBox
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.virtualbox.guest.enable = true;
  virtualisation.virtualbox.guest.x11 = true;
}
</nowiki>
}}
|-
|VMware
|{{file|configuration.nix|nix|
<nowiki>
{
  services.xserver.videoDrivers = [ "vmware" ];
  virtualisation.vmware.guest.enable = true;
}
</nowiki>
}}
|-
|microvm.nix
|Consult the [https://astro.github.io/microvm.nix/ MicroVM.nix documentation]


[[Category:Guide]]
[[Category:Software]]
[[Category:Virtualization]]
[[Category:Desktop]]
[[Category:Server]]