summaryrefslogtreecommitdiffstats
path: root/krebs
diff options
context:
space:
mode:
Diffstat (limited to 'krebs')
-rw-r--r--krebs/3modules/tv/default.nix21
-rw-r--r--krebs/4lib/default.nix9
-rw-r--r--krebs/4lib/infest/finalize.sh21
-rw-r--r--krebs/4lib/infest/install-nix.sh7
-rw-r--r--krebs/4lib/infest/prepare.sh51
-rw-r--r--krebs/5pkgs/realwallpaper/default.nix (renamed from krebs/5pkgs/realwallpaper.nix)0
6 files changed, 82 insertions, 27 deletions
diff --git a/krebs/3modules/tv/default.nix b/krebs/3modules/tv/default.nix
index 49204c74f..eb7a85707 100644
--- a/krebs/3modules/tv/default.nix
+++ b/krebs/3modules/tv/default.nix
@@ -11,19 +11,24 @@ with import ../../4lib { inherit lib; };
cores = 2;
dc = "tv"; #dc = "cac";
extraZones = {
+ # TODO generate krebsco.de zone from nets and don't use extraZones at all
"krebsco.de" = ''
+ krebsco.de. IN MX 5 mx23
mx23 IN A ${elemAt nets.internet.addrs4 0}
cd IN A ${elemAt nets.internet.addrs4 0}
- krebsco.de. IN MX 5 mx23'';
+ cgit IN A ${elemAt nets.internet.addrs4 0}
+ cgit.cd IN A ${elemAt nets.internet.addrs4 0}
+ '';
};
nets = rec {
internet = {
addrs4 = ["162.219.7.216"];
aliases = [
"cd.internet"
+ "cd.krebsco.de"
+ "cgit.cd.krebsco.de"
"cd.viljetic.de"
"cgit.cd.viljetic.de"
- "cd.krebsco.de"
];
ssh.port = 11423;
};
@@ -88,10 +93,20 @@ with import ../../4lib { inherit lib; };
ssh.privkey.path = <secrets/ssh.id_ed25519>;
ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICuShEqU0Cdm7KCaMD5x1D6mgj+cr7qoqbzFJDKoBbbw";
};
- ire = {
+ ire = rec {
+ extraZones = {
+ # TODO generate krebsco.de zone from nets and don't use extraZones at all
+ "krebsco.de" = ''
+ ire IN A ${elemAt nets.internet.addrs4 0}
+ '';
+ };
nets = {
internet = {
addrs4 = ["198.147.22.115"];
+ aliases = [
+ "ire.internet"
+ "ire.krebsco.de"
+ ];
ssh.port = 11423;
};
retiolum = {
diff --git a/krebs/4lib/default.nix b/krebs/4lib/default.nix
index 78f719988..f15514fe3 100644
--- a/krebs/4lib/default.nix
+++ b/krebs/4lib/default.nix
@@ -3,7 +3,14 @@
with builtins;
with lib;
-builtins // lib // rec {
+let
+ maybe = import ./maybe.nix { inherit lib; };
+in
+
+builtins //
+lib //
+maybe //
+rec {
eq = x: y: x == y;
diff --git a/krebs/4lib/infest/finalize.sh b/krebs/4lib/infest/finalize.sh
index ced5a4d4d..0039960c5 100644
--- a/krebs/4lib/infest/finalize.sh
+++ b/krebs/4lib/infest/finalize.sh
@@ -1,21 +1,30 @@
#! /bin/sh
set -eux
{
- umount /mnt/nix || [ $? -eq 32 ]
- umount /mnt/boot || [ $? -eq 32 ]
- umount /mnt/root || [ $? -eq 32 ]
- umount /mnt || [ $? -eq 32 ]
- umount /boot || [ $? -eq 32 ]
+ umount /mnt/nix
+ umount /mnt/root
+ umount /boot || :
+ umount /mnt/boot
+ umount /mnt
+
+ coreutils_path=$(set +f; for i in /nix/store/*coreutils*/bin; do :; done; echo $i)
+ sed_path=$(set +f; for i in /nix/store/*gnused*/bin; do :; done; echo $i)
+ PATH="$coreutils_path:$sed_path"
- PATH=$(set +f; for i in /nix/store/*coreutils*/bin; do :; done; echo $i)
export PATH
mkdir /oldshit
+ #fix bug where grub install cant find the /nix/store because its under a bind mount
+ if test -e /boot/grub/grub.cfg; then
+ sed -i 's,//store,/nix/store,g' /boot/grub/grub.cfg
+ fi;
+
mv /bin /oldshit/
mv /newshit/bin /
# TODO ensure /boot is empty
+ # skip boot
rmdir /newshit/boot
# skip /dev
diff --git a/krebs/4lib/infest/install-nix.sh b/krebs/4lib/infest/install-nix.sh
index 88c8c3e1e..af1a8bd16 100644
--- a/krebs/4lib/infest/install-nix.sh
+++ b/krebs/4lib/infest/install-nix.sh
@@ -19,16 +19,9 @@ install_nix() {(
)
nix_src_dir=$(basename $nix_url .tar.bz2)
tar jxf $nix_src_dir.tar.bz2
- mkdir -v -m 0755 -p /nix
$nix_src_dir/install
fi
- #TODO: make this general or move to prepare
- if ! mount | grep -Fq '/dev/mapper/centos-root on /mnt/nix type xfs'; then
- mkdir -p /mnt/nix
- mount --bind /nix /mnt/nix
- fi
-
. /root/.nix-profile/etc/profile.d/nix.sh
for i in \
diff --git a/krebs/4lib/infest/prepare.sh b/krebs/4lib/infest/prepare.sh
index 07c00c3a5..9fbd5be86 100644
--- a/krebs/4lib/infest/prepare.sh
+++ b/krebs/4lib/infest/prepare.sh
@@ -5,10 +5,14 @@ prepare() {(
if test -e /etc/os-release; then
. /etc/os-release
case $ID in
+ arch)
+ prepare_arch "$@"
+ exit
+ ;;
centos)
case $VERSION_ID in
7)
- prepare_centos7 "$@"
+ prepare_centos "$@"
exit
;;
esac
@@ -19,17 +23,28 @@ prepare() {(
exit -1
)}
-prepare_centos7() {
+prepare_arch() {
+ type bzip2 2>/dev/null || pacman -S --noconfirm bzip2
+ type git 2>/dev/null || pacman -S --noconfirm git
+ type rsync 2>/dev/null || pacman -S --noconfirm rsync
+ prepare_common
+}
+
+prepare_centos() {
type bzip2 2>/dev/null || yum install -y bzip2
type git 2>/dev/null || yum install -y git
type rsync 2>/dev/null || yum install -y rsync
+ prepare_common
+}
+
+prepare_common() {
+
if ! getent group nixbld >/dev/null; then
groupadd -g 30000 -r nixbld
fi
for i in `seq 1 10`; do
if ! getent passwd nixbld$i 2>/dev/null; then
useradd \
- -c "CentOS Nix build user $i" \
-d /var/empty \
-g 30000 \
-G 30000 \
@@ -38,7 +53,6 @@ prepare_centos7() {
-s /sbin/nologin \
-u $(expr 30000 + $i) \
nixbld$i
- rm -f /var/spool/mail/nixbld$i
fi
done
@@ -46,29 +60,46 @@ prepare_centos7() {
# mount install directory
#
- if ! mount | grep -Fq '/dev/mapper/centos-root on /mnt type xfs'; then
+ if ! mount | grep -Fq ' on /mnt type '; then
mkdir -p /newshit
mount --bind /newshit /mnt
fi
- if ! mount | grep -Fq '/dev/sda1 on /mnt/boot type xfs'; then
+ if ! mount | grep -Fq ' on /mnt/boot type '; then
mkdir -p /mnt/boot
- mount /dev/sda1 /mnt/boot
- fi
- mount | grep 'on /mnt\>' >&2
+ if mount | grep -Fq ' on /boot type '; then
+ bootdev=$(mount | grep " on /boot type " | sed 's/ .*//')
+ mount $bootdev /mnt/boot
+ else
+ mount --bind /boot/ /mnt/boot
+ fi
+
+ fi
#
# prepare install directory
#
+ rootpart=$(mount | grep " on / type" | sed 's/ .*//')
+
mkdir -p /mnt/etc/nixos
mkdir -m 0555 -p /mnt/var/empty
- if ! mount | grep -Fq '/dev/mapper/centos-root on /mnt/root type xfs'; then
+ if ! mount | grep -Fq "$rootpart on /mnt/root type "; then
mkdir -p /mnt/root
mount --bind /root /mnt/root
fi
+
+ #
+ # prepare nix store path
+ #
+
+ mkdir -v -m 0755 -p /nix
+ if ! mount | grep -Fq "$rootpart on /mnt/nix type "; then
+ mkdir -p /mnt/nix
+ mount --bind /nix /mnt/nix
+ fi
}
prepare "$@"
diff --git a/krebs/5pkgs/realwallpaper.nix b/krebs/5pkgs/realwallpaper/default.nix
index 4fea977ec..4fea977ec 100644
--- a/krebs/5pkgs/realwallpaper.nix
+++ b/krebs/5pkgs/realwallpaper/default.nix
[cgit] Unable to lock slot /tmp/cgit/d6200000.lock: No such file or directory (2)