Added closed-install example of configurable Live DVD. Tested: virtual network of two QEmu-s, one is booted from that LiveDVD, another executes one scripted process and forces first to install NixOS.
svn path=/nixos/trunk/; revision=11816
This commit is contained in:
parent
cc7f3c7aaa
commit
1a6e1a43dc
57
configuration/closed-install.nix
Normal file
57
configuration/closed-install.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{platform ? __currentSystem} :
|
||||||
|
let
|
||||||
|
isoFun = import ./rescue-cd-configurable.nix;
|
||||||
|
in
|
||||||
|
(isoFun {
|
||||||
|
inherit platform;
|
||||||
|
lib = (import ../pkgs/lib);
|
||||||
|
|
||||||
|
networkNixpkgs = "";
|
||||||
|
manualEnabled = true;
|
||||||
|
rogueEnabled = false;
|
||||||
|
sshdEnabled = true;
|
||||||
|
fontConfigEnabled = false;
|
||||||
|
sudoEnable = true;
|
||||||
|
includeMemtest = false;
|
||||||
|
includeStdenv = true;
|
||||||
|
includeBuildDeps = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
If anyone uses that DVD on live
|
||||||
|
computer, use DHCP; but also add
|
||||||
|
a rogue address for tests in virtual
|
||||||
|
networks without DHCP at all.
|
||||||
|
*/
|
||||||
|
addIP = "10.0.253.251";
|
||||||
|
netmask = "255.255.0.0";
|
||||||
|
|
||||||
|
kernel = pkgs: (
|
||||||
|
pkgs.aggregateModules
|
||||||
|
[pkgs.kernel]
|
||||||
|
);
|
||||||
|
|
||||||
|
packages = pkgs : [
|
||||||
|
pkgs.patch
|
||||||
|
pkgs.irssi
|
||||||
|
pkgs.subversion
|
||||||
|
pkgs.w3m
|
||||||
|
pkgs.utillinuxCurses
|
||||||
|
pkgs.wpa_supplicant
|
||||||
|
pkgs.emacs
|
||||||
|
pkgs.vimHugeX
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
The goal is remotely controlled
|
||||||
|
installation (maybe over virtual
|
||||||
|
networking with QEmu without human
|
||||||
|
interaction), so let's make ssh
|
||||||
|
work without manual password entry
|
||||||
|
*/
|
||||||
|
additionalFiles = [
|
||||||
|
{
|
||||||
|
source = /var/certs/ssh/id_livedvd.pub;
|
||||||
|
target = "/root/.ssh/authorized_keys";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}).rescueCD
|
32
configuration/examples/closed-install-configuration.nix
Normal file
32
configuration/examples/closed-install-configuration.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
boot = {
|
||||||
|
grubDevice = "/dev/sda";
|
||||||
|
copyKernels = true;
|
||||||
|
bootMount = "(hd0,0)";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = [
|
||||||
|
{ mountPoint = "/";
|
||||||
|
device = "/dev/sda3";
|
||||||
|
}
|
||||||
|
{ mountPoint = "/boot";
|
||||||
|
device = "/dev/sda1";
|
||||||
|
neededForBoot = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/sda2"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
sshd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
enableFontConfig = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -24,6 +24,20 @@
|
|||||||
*/
|
*/
|
||||||
,configList ? (configuration : [])
|
,configList ? (configuration : [])
|
||||||
,aufs ? true
|
,aufs ? true
|
||||||
|
|
||||||
|
/*
|
||||||
|
Address/netmask to be always added, whatever
|
||||||
|
network-interfaces configure is kept
|
||||||
|
*/
|
||||||
|
,addIP ? ""
|
||||||
|
,netmask ? "255.255.255.0"
|
||||||
|
/* To select interface to bind address to */
|
||||||
|
,ifName ? "eth0"
|
||||||
|
|
||||||
|
/*
|
||||||
|
list of: {source, target}
|
||||||
|
*/
|
||||||
|
,additionalFiles ? []
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
ttyCount = lib.fold builtins.add 0 [
|
ttyCount = lib.fold builtins.add 0 [
|
||||||
@ -205,6 +219,21 @@ rec {
|
|||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
++
|
||||||
|
|
||||||
|
(lib.optional (addIP != "")
|
||||||
|
{
|
||||||
|
name = "add-IP-adress";
|
||||||
|
job = ''
|
||||||
|
start on network-interfaces/started
|
||||||
|
script
|
||||||
|
${pkgs.nettools}/sbin/ifconfig ${ifName} add ${addIP} up
|
||||||
|
${pkgs.nettools}/sbin/ifconfig ${ifName}:0 netmask ${netmask} up
|
||||||
|
end script
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
# And a background to go with that.
|
# And a background to go with that.
|
||||||
@ -395,6 +424,8 @@ rec {
|
|||||||
target = "boot/memtest.bin";
|
target = "boot/memtest.bin";
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
++
|
||||||
|
additionalFiles
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user