Commit Graph

111 Commits

Author SHA1 Message Date
Eelco Dolstra
8aad8c536f * Make virtualisation.qemu.options a list.
svn path=/nixos/trunk/; revision=28120
2011-08-02 06:52:10 +00:00
Rob Vermaas
d0ad799582 bind mount /proc in chroot dureing image creation, to prevent some error
svn path=/nixos/trunk/; revision=28002
2011-07-29 14:55:42 +00:00
Eelco Dolstra
a2ad688a63 * Handle the case where networking.hostName is empty.
svn path=/nixos/trunk/; revision=27510
2011-06-21 10:46:21 +00:00
Eelco Dolstra
3cb5ea79bd * Add an option virtualisation.nova.extraConfig.
svn path=/nixos/trunk/; revision=27504
2011-06-20 14:27:06 +00:00
Eelco Dolstra
545431003b * Create some virtual consoles in Nova VMs because it provides VNC
access.

svn path=/nixos/trunk/; revision=27483
2011-06-16 14:15:37 +00:00
Eelco Dolstra
e9a567f8d2 * Update the Nova module for the Cactus release.
svn path=/nixos/trunk/; revision=27410
2011-06-09 17:11:56 +00:00
Eelco Dolstra
862fe5ad78 * Generate a nova.conf file.
* Provide a configuration.nix in Nova images.

svn path=/nixos/trunk/; revision=27224
2011-05-11 13:52:49 +00:00
Eelco Dolstra
05ff7baf48 * /var/lib/nova/networks should be readable by the `nobody' user,
because dnsmasq runs as nobody and reads its host list from there.

svn path=/nixos/trunk/; revision=26740
2011-04-07 12:47:20 +00:00
Eelco Dolstra
3836e8eb02 * Properly initialise Nova's state.
svn path=/nixos/trunk/; revision=26735
2011-04-07 09:59:11 +00:00
Eelco Dolstra
4c2a0dc531 * Add multipath-tools (specifically, kpartx) to nova-compute's $PATH
so that it can inject SSH keys into disk images.
* Use the injected key if available.

svn path=/nixos/trunk/; revision=26724
2011-04-06 15:53:03 +00:00
Eelco Dolstra
2e2282bd5e * Added a module to create a disk image for Nova.
svn path=/nixos/trunk/; revision=26721
2011-04-06 15:09:34 +00:00
Eelco Dolstra
fcaec58d27 * Add a module for setting up a basic (single-node) OpenStack Compute
(Nova) cloud.

svn path=/nixos/trunk/; revision=26664
2011-04-01 18:09:57 +00:00
Eelco Dolstra
2c1084b21b * libvirtd job: wait until libvirtd is accepting connections.
svn path=/nixos/trunk/; revision=26663
2011-04-01 18:08:53 +00:00
Eelco Dolstra
1e2c0d6284 * Try to hack around libvirt's stateful use of /etc/libvirt. (Routine
operations such as creating VMs modify the contents of
  /etc/libvirt.)

svn path=/nixos/trunk/; revision=26644
2011-03-31 22:10:26 +00:00
Eelco Dolstra
e174562ee1 * Put ebtables in libvirtd's PATH.
svn path=/nixos/trunk/; revision=26629
2011-03-31 15:24:13 +00:00
Eelco Dolstra
be0fca5781 * Use QEMU/KVM's paravirtualised console device for the backdoor.
This has the advantage that it doesn't depend on networking being
  up.
* Move common QEMU/KVM guest configuration to profiles/qemu-guest.nix.

svn path=/nixos/trunk/; revision=26421
2011-03-18 12:38:22 +00:00
Eelco Dolstra
a19849914a * libvirtd: Remove the pid on startup. If it exists, libvirtd
tends to segfault.

svn path=/nixos/trunk/; revision=26365
2011-03-16 13:52:52 +00:00
Eelco Dolstra
8add655028 * Add qemu_kvm to the system path.
svn path=/nixos/trunk/; revision=26359
2011-03-16 12:31:06 +00:00
Eelco Dolstra
f45866d0e7 * The NAT networking in libvirt requires the "tun" module.
svn path=/nixos/trunk/; revision=26314
2011-03-15 10:52:44 +00:00
Eelco Dolstra
f833492c68 * Add dnsmasq to libvirtd's PATH. This is required for networking.
svn path=/nixos/trunk/; revision=26313
2011-03-15 09:42:49 +00:00
Eelco Dolstra
cd30b40da7 * Replace ifconfig by ip in the initrd of VM tests.
svn path=/nixos/trunk/; revision=26280
2011-03-11 14:59:36 +00:00
Eelco Dolstra
e2e7b689b4 * Fix `nixos-rebuild build-vm-with-bootloader': QEMU now requires the
`readonly' flag if the disk image is not writable.

svn path=/nixos/trunk/; revision=26245
2011-03-10 11:39:37 +00:00
Eelco Dolstra
08426fb717 * Add an Upstart job for libvirt-guests.
svn path=/nixos/trunk/; revision=26121
2011-02-25 15:56:49 +00:00
Eelco Dolstra
6fd7f8e0e6 * Add an Upstart job for libvirtd.
svn path=/nixos/trunk/; revision=26114
2011-02-25 15:07:52 +00:00
Eelco Dolstra
e0fef9c333 * Drop the unnecessary boot=on flag.
svn path=/nixos/trunk/; revision=26103
2011-02-24 21:47:56 +00:00
Eelco Dolstra
163769ace5 * Write hypervisor log messages to /var/log/xen/console.
svn path=/nixos/trunk/; revision=25882
2011-02-10 12:27:12 +00:00
Sander van der Burg
96b769c979 Removed the backdoor, because it does not work anymore and it has also become obsolete (Disnix uses something else now)
svn path=/nixos/trunk/; revision=25601
2011-01-17 16:15:59 +00:00
Eelco Dolstra
04b43f1e3f * Remove tabs because this causes the shell script to be misindented.
svn path=/nixos/trunk/; revision=25522
2011-01-12 15:40:46 +00:00
Eelco Dolstra
ecaf1d9f08 * Using hpet no longer seems necessary. Maybe upstream fixed it.
svn path=/nixos/trunk/; revision=25489
2011-01-10 13:32:09 +00:00
Eelco Dolstra
796b48c367 * Run smbd in its own session / process group (setsid) because smbd
now kills its process group when it exits.  Without setsid, this
  ends up killing the parent (i.e., the builder).
* Use port 445 instead of 139 because the CIFS kernel module tries
  port 445 first.  If there is an actual Samba running on the host, it
  would end up connecting to that one instead of our own and fail.

svn path=/nixos/trunk/; revision=25016
2010-12-06 19:02:24 +00:00
Eelco Dolstra
8e168edebc * Increase the number of loopback devices from the default (8),
which is way too small because every VM virtual disk requires
  a loopback device.

svn path=/nixos/trunk/; revision=24988
2010-12-06 09:54:08 +00:00
Sander van der Burg
9c722e474d - Added nixos-build-vms command, which builds a virtual network from a network.nix expression (also used by nixos-deploy-network)
- Added a backdoor option to the interactive run-vms script. This allows me to intergrate the virtual network approach with Disnix
- Small documentation fixes

Some explanation:

The nixos-build-vms command line tool can be used to build a virtual network of a network.nix specification.
For example, a network configuration (network.nix) could look like this:

{
  test1 = 
    {pkgs, config, ...}:
 
    {
      services.openssh.enable = true;
      ...
    };

  test2 =
    {pkgs, config, ...}:
    
    {
      services.openssh.enable = true;
      services.xserver.enable = true;
    }

    ;
}

By typing the following instruction:

$ nixos-build-vms -n network.nix

a virtual network is built, which can be started by typing:

$ ./result/bin/run-vms

It is also possible to enable a backdoor. In this case *.socket files are stored in the current directory
which can be used by the end-user to invoke remote instruction on a VM in the network through a Unix
domain socket.

For example by building the network with the following instructions:

$ nixos-build-vms -n network.nix --use-backdoor

and launching the virtual network:

$ ./result/bin/run-vms

You can find two socket files in your current directory, namely: test1.socket and test2.socket.
These Unix domain sockets can be used to remotely administer the test1 and test2 machine
in the virtual network.

For example by running:

$ socat ./test1.socket stdio
ls /root

You can retrieve the contents of the /root directory of the virtual machine with identifier test1


svn path=/nixos/trunk/; revision=24410
2010-10-21 22:50:12 +00:00
Eelco Dolstra
fa04ae9738 * It's "tun", not "tap".
svn path=/nixos/trunk/; revision=24217
2010-10-11 17:06:49 +00:00
Eelco Dolstra
81dbac4af3 * Don't run ntpd in DomU.
svn path=/nixos/trunk/; revision=24125
2010-10-06 20:22:36 +00:00
Eelco Dolstra
cda2e41c01 * Added a "xendomains" job to automatically start the domains defined
in /etc/xen/auto at boot time, to save all running domains during
  shutdown, and to restore all saved domains at boot time.

svn path=/nixos/trunk/; revision=24121
2010-10-06 16:07:16 +00:00
Eelco Dolstra
8b5fba4942 * Added a module that provides common configuration for DomU
machines.

svn path=/nixos/trunk/; revision=24084
2010-10-05 15:44:40 +00:00
Eelco Dolstra
c5b39e70ef * Rename the xen module to xen-dom0.
svn path=/nixos/trunk/; revision=24078
2010-10-05 14:23:12 +00:00
Eelco Dolstra
deca72f3cf * Xen (or rather QEMU) needs /dev/net/tun, so load the tap
module.

svn path=/nixos/trunk/; revision=23970
2010-09-27 16:32:42 +00:00
Eelco Dolstra
0442e7e82a * Add Xen's udev rules. This is necessary to get automatically
created block and network devices to work.

svn path=/nixos/trunk/; revision=23823
2010-09-16 15:24:46 +00:00
Eelco Dolstra
071b192c9d * Start dhclient after xend.
svn path=/nixos/trunk/; revision=23782
2010-09-14 11:58:06 +00:00
Eelco Dolstra
72d9235992 * Added an Upstart job for the Xen control daemon (xend).
svn path=/nixos/trunk/; revision=23781
2010-09-14 11:22:50 +00:00
Eelco Dolstra
c4f910f550 * Substitute the path of the system derivation directly in the stage 2
init script.  This removes the need for the `systemConfig' boot
  parameter; `init=<stage-2-init>' is enough.  However, the GRUB menu
  builder still needs to add `systemConfig' to the kernel command line
  for compatibility with old configurations.

svn path=/nixos/trunk/; revision=23775
2010-09-13 22:10:25 +00:00
Eelco Dolstra
f8f04aa756 * Fix the tests.
svn path=/nixos/trunk/; revision=23764
2010-09-13 16:02:54 +00:00
Eelco Dolstra
f729f12e4e Some cleanups in the activation script:
* Moved some scriptlets to the appropriate modules.
* Put the scriptlet that sets the default path at the start, since it
  never makes sense not to have it there.  It no longer needs to be
  declared as a dependency.
* If a scriptlet has no dependencies, it can be denoted as a plain
  string (i.e., `noDepEntry' is not needed anymore).

svn path=/nixos/trunk/; revision=23762
2010-09-13 15:41:38 +00:00
Eelco Dolstra
f99e42cfbc * Doh.
svn path=/nixos/trunk/; revision=23748
2010-09-13 13:43:53 +00:00
Eelco Dolstra
c1295661c4 * Added a command `nixos-rebuild build-vm-with-bootloader'. This is
like `build-vm', but boots using the regular boot loader (i.e. GRUB
  1 or 2) rather than booting directly from the kernel/initrd.  Thus
  it allows testing of GRUB.

svn path=/nixos/trunk/; revision=23747
2010-09-13 12:34:58 +00:00
Eelco Dolstra
e871e84159 * mkOverrideTemplate -> mkOverride.
svn path=/nixos/trunk/; revision=23743
2010-09-13 11:33:05 +00:00
Eelco Dolstra
6b2844c6b2 * Mount /proc/xen.
svn path=/nixos/trunk/; revision=23741
2010-09-12 22:56:54 +00:00
Eelco Dolstra
987dd76811 * Added a module to enable the Xen hypervisor.
svn path=/nixos/trunk/; revision=23739
2010-09-12 22:43:45 +00:00
Nicolas Pierron
c9dc3651da Replace mkOverride by its alias mkOverrideTemplate to remove the unused
template argument of mkOverride later.

svn path=/nixos/trunk/; revision=23631
2010-09-03 19:10:59 +00:00