| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  | # Usage: | 
					
						
							|  |  |  | # $ NIXOS_CONFIG=`pwd`/nixos/modules/virtualisation/nova-image.nix nix-build '<nixpkgs/nixos>' -A config.system.build.novaImage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  |   system.build.novaImage = import ../../lib/make-disk-image.nix { | 
					
						
							|  |  |  |     inherit pkgs lib config; | 
					
						
							|  |  |  |     partitioned = true; | 
					
						
							|  |  |  |     diskSize = 1 * 1024; | 
					
						
							|  |  |  |     configFile = pkgs.writeText "configuration.nix" | 
					
						
							|  |  |  |       ''
 | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           imports = [ <nixpkgs/nixos/modules/virtualisation/nova-image.nix> ]; | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  |       '';
 | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2015-05-17 20:55:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  |   imports = [ | 
					
						
							|  |  |  |     ../profiles/qemu-guest.nix | 
					
						
							|  |  |  |     ../profiles/headless.nix | 
					
						
							|  |  |  |   ]; | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-02 18:02:12 +01:00
										 |  |  |   fileSystems."/".device = "/dev/disk/by-label/nixos"; | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   boot.kernelParams = [ "console=ttyS0" ]; | 
					
						
							|  |  |  |   boot.loader.grub.device = "/dev/vda"; | 
					
						
							|  |  |  |   boot.loader.grub.timeout = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  |   # Allow root logins | 
					
						
							|  |  |  |   services.openssh.enable = true; | 
					
						
							|  |  |  |   services.openssh.permitRootLogin = "without-password"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  |   # Put /tmp and /var on /ephemeral0, which has a lot more space. | 
					
						
							|  |  |  |   # Unfortunately we can't do this with the `fileSystems' option | 
					
						
							|  |  |  |   # because it has no support for creating the source of a bind | 
					
						
							| 
									
										
										
										
											2012-12-16 13:31:44 -05:00
										 |  |  |   # mount.  Also, "move" /nix to /ephemeral0 by layering a unionfs-fuse | 
					
						
							|  |  |  |   # mount on top of it so we have a lot more space for Nix operations. | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  |   /*
 | 
					
						
							|  |  |  |   boot.initrd.postMountCommands = | 
					
						
							|  |  |  |     ''
 | 
					
						
							|  |  |  |       mkdir -m 1777 -p $targetRoot/ephemeral0/tmp | 
					
						
							|  |  |  |       mkdir -m 1777 -p $targetRoot/tmp | 
					
						
							|  |  |  |       mount --bind $targetRoot/ephemeral0/tmp $targetRoot/tmp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       mkdir -m 755 -p $targetRoot/ephemeral0/var | 
					
						
							|  |  |  |       mkdir -m 755 -p $targetRoot/var | 
					
						
							|  |  |  |       mount --bind $targetRoot/ephemeral0/var $targetRoot/var | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-16 13:31:44 -05:00
										 |  |  |       mkdir -p /unionfs-chroot/ro-nix | 
					
						
							|  |  |  |       mount --rbind $targetRoot/nix /unionfs-chroot/ro-nix | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       mkdir -p /unionfs-chroot/rw-nix | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  |       mkdir -m 755 -p $targetRoot/ephemeral0/nix | 
					
						
							| 
									
										
										
										
											2012-12-16 13:31:44 -05:00
										 |  |  |       mount --rbind $targetRoot/ephemeral0/nix /unionfs-chroot/rw-nix | 
					
						
							| 
									
										
										
										
											2013-01-22 13:31:08 +01:00
										 |  |  |       unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768 /rw-nix=RW:/ro-nix=RO $targetRoot/nix | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  |     '';
 | 
					
						
							| 
									
										
										
										
											2012-12-16 13:31:44 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     boot.initrd.supportedFilesystems = [ "unionfs-fuse" ]; | 
					
						
							| 
									
										
										
										
											2015-10-26 16:16:15 +01:00
										 |  |  |   */ | 
					
						
							| 
									
										
										
										
											2011-04-06 15:09:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | } |