Category:Virtualization: Difference between revisions

Claes (talk | contribs)
Changed heading structure for better readability
Refactor page: split tables, improve introduction
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This guide page exists to point out resources related to virtualization in the Nix ecosystem.
This category page exists to list resources related to <strong>virtualisation</strong> in the Nix ecosystem.


== Virtualizing NixOS ==
== Overview ==
This section is for information about running NixOS as a guest virtual machine.


=== VirtualBox ===
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.
NixOS.org hosts an [https://nixos.org/download.html#nixos-virtualbox official VirtualBox virtual appliance image] in OVA format.


=== VMware ===
* QEMU/KVM (see [[Virt-manager]])
See [[VMware]] for help using VMware to virtualize NixOS.
* [[VirtualBox]]
* [[VMware]]
* The [[Xen Project Hypervisor]]


=== microvm.nix ===
{| class="wikitable"
NixOS on NixOS with configurable virtual machine manager: https://github.com/astro/microvm.nix
|+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;


== NixOS as a VM host ==
  # if you use libvirtd on a desktop environment
This section covers if you want to run virtual machines from within Nix(OS).
  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>
}}
|}


=== VMware ===
{| class="wikitable"
1. In your configuration.nix add the following line
|+Installing the appropriate guest utilities on a virtualised system.
<code> virtualisation.vmware.host.enable = true; </code>
!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]


2. reboot
[[Category:Software]]
 
[[Category:Desktop]]
=== VirtualBox ===
[[Category:Server]]
See [[VirtualBox]] for more.
 
=== QEMU/KVM ===
See [[Virt-manager]]
 
 
[[Category:Guide]]
[[Category:Virtualization]]