This commit is contained in:
Jeschli 2020-02-18 21:13:06 +01:00
commit 6959379330
5 changed files with 135 additions and 43 deletions

View File

@ -1,7 +1,7 @@
{
"url": "https://github.com/NixOS/nixpkgs-channels",
"rev": "eb65d1dae626f4b149566c4cbccdad7ec24af189",
"date": "2020-01-13T10:34:45+00:00",
"sha256": "0zl4zakmw2s7gnkc2bmnjl71xg55n0kqrcm834kjq49lwwmdk225",
"rev": "c49da6435f314e04fc58ca29807221817ac2ac6b",
"date": "2020-02-07T12:52:16+01:00",
"sha256": "17zsqhaf098bvcfarnq0h9601z6smkfd1kz1px6xfg6xqfmr80r7",
"fetchSubmodules": false
}

View File

@ -21,7 +21,14 @@
source /grub/autoiso.cfg
}
'';
extraFiles."/grub/autoiso.cfg" = "${pkgs.grub2.src}/docs/autoiso.cfg";
extraFiles."/grub/autoiso.cfg" = (pkgs.stdenv.mkDerivation {
name = "autoiso.cfg";
src = pkgs.grub2.src;
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
cp docs/autoiso.cfg $out
'';
});
};
services.logind.lidSwitch = "ignore";

View File

@ -1,42 +1,118 @@
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
with import <stockholm/lib>;
let
wizard = pkgs.writers.writeBash "wizard" ''
shopt -s extglob
icon = pkgs.writeText "icon" ''
//
//
_ //
.' . // '.
'_ '_\/_' `_
. . \\ . .
.==. ` \\' .'
.\| //bd\\ \,
\_'`._\\__//_.'`.;
`.__ __,' \\
| | \\
| | `
| |
| |
|____|
l42 ==' '==
'';
echo -n '
messenger = pkgs.writeText "message" ''
.
| \/|
(\ _ ) )|/|
(/ _----. /.'.'
.-._________.. .' @ _\ .'
'.._______. '. / (_| .')
'._____. / '-/ | _.'
'.______ ( ) ) \
'..____ '._ ) )
.' __.--\ , , // ((
'.' mrf| \/ (_.'(
' \ .'
\ (
\ '.
\ \ '.)
'-'-'
'';
waiting = pkgs.writeText "waiting" ''
Z
Z
z
z
* '
/ \
/___\
( - - )
) L ( .--------------.
__()(-)()__ | \ |
.~~ )()()() ~. | . :
/ )()() ` | `-.__________)
| )() ~ | : :
| ) | : |
| _ | | [ ## :
\ ~~-. | , oo_______.'
`_ ( \) _____/~~~~ `--___
| ~`-) ) `-. `--- ( - a:f -
| '///` | `-.
| | | | `-.
| | | | `-.
| | |\ |
| | | \|
`-. | | |
`-| '
'';
wizard = pkgs.writers.writeDash "wizard" ''
cat ${icon}
echo -n '${''
welcome to the computer wizard
first we will check for internet connectivity
(press enter to continue)
'
read -n 1 -s
if ! ping -c1 lassul.us; then
echo 'no internet detectio, you will have to provide credentials'
read -n 1 -s
nmtui
fi
# ping -c1 lassuls.us || ${pkgs.writeDash "nm-dmenu" ''
# set -x
# export PATH=$PATH:${pkgs.dmenu}/bin:${pkgs.networkmanagerapplet}/bin
# exec ${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu "$@"
# ''}
''}'
mode=$(echo -n '
1. help of the wizard
2. let the wizard watch and help if needed
3. I will do it alone
' | ${pkgs.fzf}/bin/fzf --reverse)
read -p '(press enter to continue...)' key
until ping -c1 8.8.8.8; do
${pkgs.nm-dmenu}/bin/nm-dmenu
done
mode=$(echo -n '${''
1. Help of the wizard
2. Install NixOS
3. I know what I need to do
''}' | ${pkgs.fzf}/bin/fzf --reverse)
case "$mode" in
1*)
echo 'mode_1' > /tmp/mode
clear
echo 'waiting for the messenger to reach the wizard'
cat ${messenger}
# get pubkeys
mkdir -p /root/.ssh/
touch /root/.ssh/authorized_keys
curl -Ss 'https://lassul.us/mors.pub' >> /root/.ssh/authorized_keys
curl -Ss 'https://lassul.us/blue.pub' >> /root/.ssh/authorized_keys
curl -Ss 'https://lassul.us/yubi.pub' >> /root/.ssh/authorized_keys
# write via irc
systemctl start hidden-ssh-announce.service
tmux new -s help
tmux new-session -s help ${pkgs.writers.writeDash "waiting" ''
cat ${waiting}
read -p 'waiting for the wizard to wake up' key
${pkgs.bashInteractive}/bin/bash
''}
;;
2*)
echo 'mode_2' > /tmp/mode
${pkgs.nixos-installer}/bin/nixos-installer
;;
3*)
echo 'mode_3' > /tmp/mode
@ -52,6 +128,7 @@ in {
<stockholm/krebs>
<stockholm/lass/3modules>
<stockholm/lass/2configs/vim.nix>
# <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-base.nix>
{
nixpkgs.config.packageOverrides = import <stockholm/lass/5pkgs> pkgs;
krebs.enable = true;
@ -86,14 +163,14 @@ in {
networking.hostName = "wizard";
nixpkgs.config.allowUnfree = true;
users.extraUsers = {
root = {
openssh.authorizedKeys.keys = [
config.krebs.users.lass.pubkey
config.krebs.users.lass-mors.pubkey
];
};
};
# users.extraUsers = {
# root = {
# openssh.authorizedKeys.keys = [
# config.krebs.users.lass.pubkey
# config.krebs.users.lass-mors.pubkey
# ];
# };
# };
environment.systemPackages = with pkgs; [
#stockholm
@ -120,16 +197,12 @@ in {
aria2
#neat utils
dmenu
chntpw
hashPassword
krebspaste
pciutils
pop
psmisc
q
rs
tmux
untilport
usbutils
#unpack stuff
@ -141,6 +214,8 @@ in {
ddrescue
ntfs3g
dosfstools
nixos-installer
];
environment.extraInit = ''
@ -193,10 +268,10 @@ in {
krebs.hidden-ssh = {
enable = true;
channel = "##lassulus-wizard";
message = "lassulus: torify sshn root@";
};
systemd.services.hidden-ssh-announce.wantedBy = mkForce [];
services.mingetty.autologinUser = "root";
services.mingetty.autologinUser = lib.mkForce "root";
nixpkgs.config.packageOverrides = super: {
dmenu = pkgs.writeDashBin "dmenu" ''

View File

@ -4,4 +4,4 @@
set -xefu
WD=$(dirname "$0")
nixos-generate -I stockholm="$WD"/../../.. -c "$WD"/default.nix -f install-iso
nixos-generate -I stockholm="$WD"/../../.. -c "$WD"/config.nix -f install-iso

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, ... }:
{
imports = [
./default.nix
];
virtualisation.emptyDiskImages = [
8000
];
virtualisation.memorySize = 1024;
}