Commit graph

95 commits

Author SHA1 Message Date
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
Eelco Dolstra
d550cc6d63 * Grmbl. Create the missing mount points.
svn path=/nixos/trunk/; revision=23592
2010-09-01 11:00:35 +00:00
Eelco Dolstra
68ebbb6093 * Put /nix on /ephemeral0 using AUFS (with the original /nix from the
AMI as a base) because the root filesystem is rather small.

svn path=/nixos/trunk/; revision=23534
2010-08-29 22:29:10 +00:00
Eelco Dolstra
34719e0c4a * On second thought, panicking in stage 1 doesn't help because it
won't actually cause the instance to be terminated (even if
  "panic=1" were to be set), merely rebooted.

svn path=/nixos/trunk/; revision=23533
2010-08-29 22:11:33 +00:00
Eelco Dolstra
a242602b40 * /data -> /ephemeral0.
* Put /tmp and /var on the /ephemeral0, as it has much more
  space than the root filesystem.
* Panic on stage 1 errors since they cannot be repaired anyway.

svn path=/nixos/trunk/; revision=23532
2010-08-29 22:09:15 +00:00
Eelco Dolstra
4963f769d9 * Print the host public key on the console so that the user can obtain
it securely by parsing the output of ec2-get-console-output.

svn path=/nixos/trunk/; revision=23524
2010-08-29 21:03:22 +00:00
Eelco Dolstra
4bca743766 * Typo.
svn path=/nixos/trunk/; revision=23485
2010-08-27 15:31:04 +00:00
Eelco Dolstra
392275f185 * Move support for writable Nix stores to qemu-vm.nix.
svn path=/nixos/trunk/; revision=23393
2010-08-24 12:59:16 +00:00
Rob Vermaas
e87a298c33 qemu virtualiztion: do not pass username on guest cifs mount, use sec=none in stead
svn path=/nixos/trunk/; revision=23243
2010-08-19 08:32:31 +00:00
Eelco Dolstra
31db968be4 * In QEMU, set a higher refresh rate in xorg.conf so that resolutions
higher than 800x600 work.
* Add a "Monitor" statement to the "Screen" section, because otherwise
  the Monitor section is ignored.

svn path=/nixos/trunk/; revision=23068
2010-08-09 20:10:16 +00:00
Eelco Dolstra
d659488209 * Use the regular GRUB menu builder for Amazon. There are two issues:
we want to generate the GRUB menu without actually installing GRUB
  (because Amazon supplies its own pv-grub), and each menu entry
  requires "root (hd0)".  For the first, allow boot.loader.grub.device
  to be set to "nodev" to indicate that the GRUB menu should be
  generated without installing GRUB.  For the second, add an option
  boot.loader.grub.extraPerEntryConfig to allow commands to be added
  to each GRUB menu entry (in this case, "root (hd0)").

svn path=/nixos/trunk/; revision=22712
2010-07-22 14:40:29 +00:00
Eelco Dolstra
d7f638da0c * Amazon now supports booting a custom kernel in the AMI using
pv-grub, so supply a GRUB menu that starts our own kernel and
  initrd.

svn path=/nixos/trunk/; revision=22678
2010-07-20 13:53:14 +00:00
Eelco Dolstra
b614179eed * Install a configuration.nix in the AMI.
svn path=/nixos/trunk/; revision=22607
2010-07-15 11:09:30 +00:00
Eelco Dolstra
4b018d1294 svn path=/nixos/trunk/; revision=22587 2010-07-13 20:47:31 +00:00
Eelco Dolstra
363806e89b * To establish the connection to the root shell in the guest, let the
guest connect to a Unix domain socket on the host rather than the
  other way around.  The former is a QEMU feature (guestfwd to a
  socket) while the latter requires a patch (which we can now get rid
  of).

svn path=/nixos/branches/boot-order/; revision=22331
2010-06-18 19:31:02 +00:00
Eelco Dolstra
46ac1375a7 * Don't use -smb and -no-kvm-irqchip. Maybe this makes VM builds more
reliable.

svn path=/nixos/branches/boot-order/; revision=22280
2010-06-15 16:15:17 +00:00
Eelco Dolstra
e2dbfbdcf4 * Use writeback caching for virtual disks instead of writethrough
caching.  This makes a huge performance difference (e.g. from 4 MB/s
  `dd' throughput to 140 MB/s on the Hydra machines).  As the QEMU
  manual says: "Some block drivers perform badly with
  ‘cache=writethrough’, most notably, qcow2."

svn path=/nixos/branches/boot-order/; revision=22248
2010-06-13 23:36:55 +00:00