summaryrefslogtreecommitdiffstats
path: root/next/bin
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2015-05-21 22:33:16 +0200
committertv <tv@shackspace.de>2015-05-21 22:33:16 +0200
commitac764394050f6fc39e406799085259d3fc08956a (patch)
treec5deade7085a8e63ef36a72afea58e09593c096a /next/bin
parentb27ec1aafa813740941d9194f1e7e113d5de8244 (diff)
next: initial commit
Diffstat (limited to 'next/bin')
-rwxr-xr-xnext/bin/build22
-rwxr-xr-xnext/bin/copy-secrets28
-rwxr-xr-xnext/bin/deploy16
-rwxr-xr-xnext/bin/query20
4 files changed, 86 insertions, 0 deletions
diff --git a/next/bin/build b/next/bin/build
new file mode 100755
index 000000000..40bbec344
--- /dev/null
+++ b/next/bin/build
@@ -0,0 +1,22 @@
+#! /bin/sh
+#
+# build : hostname -> system-path
+#
+set -euf
+
+host=$1
+
+#target=root@$host
+
+nixos_config=$config_root/modules/$host
+secrets_nix=$secrets_root/$host/nix
+secrets_rsync=$secrets_root/$host/rsync
+
+nix-build \
+ -I "$nixpkgs" \
+ -I nixos-config="$nixos_config" \
+ -I retiolum-hosts="$retiolum_hosts" \
+ -I secrets="$secrets_nix" \
+ -A system \
+ --no-out-link \
+ '<nixos>'
diff --git a/next/bin/copy-secrets b/next/bin/copy-secrets
new file mode 100755
index 000000000..7398d4fb1
--- /dev/null
+++ b/next/bin/copy-secrets
@@ -0,0 +1,28 @@
+#! /bin/sh
+set -euf
+
+host=$1
+
+target=root@$host
+
+nixos_config=$config_root/modules/$host
+secrets_nix=$secrets_root/$host/nix
+secrets_rsync=$secrets_root/$host/rsync
+
+if ! test -e "$secrets_rsync"; then
+ exit # nothing to do
+fi
+
+retiolum_secret=$(query $host services.retiolum.privateKeyFile)
+retiolum_uid=$(query $host users.extraUsers.retiolum-tinc.uid)
+
+ejabberd_secret=/etc/ejabberd/ejabberd.pem
+ejabberd_uid=$(query $host users.extraUsers.ejabberd.uid)
+
+rsync -cz --chown=0:0 -vr "$secrets_rsync/" "$target:/"
+
+ssh "$target" -T <<EOF
+set -euf
+! test -f $retiolum_secret || chown -v $retiolum_uid:0 $retiolum_secret
+! test -f $ejabberd_secret || chown -v $ejabberd_uid:0 $ejabberd_secret
+EOF
diff --git a/next/bin/deploy b/next/bin/deploy
new file mode 100755
index 000000000..1c1d977da
--- /dev/null
+++ b/next/bin/deploy
@@ -0,0 +1,16 @@
+#! /bin/sh
+#
+# deploy
+#
+set -euf
+
+host=$1
+system=${2-$(build "$host")}
+
+target=root@$host
+
+nix-copy-closure --gzip --to "$target" "$system"
+
+copy-secrets "$host"
+
+ssh ${NIX_SSHOPTS-} "$target" "$system/bin/switch-to-configuration" switch
diff --git a/next/bin/query b/next/bin/query
new file mode 100755
index 000000000..0e55a6cec
--- /dev/null
+++ b/next/bin/query
@@ -0,0 +1,20 @@
+#! /bin/sh
+set -euf
+
+host=$1
+attr=$2
+
+nixos_config=$config_root/modules/$host
+secrets_nix=$secrets_root/$host/nix
+secrets_rsync=$secrets_root/$host/rsync
+
+nix-instantiate \
+ -I "$nixpkgs" \
+ -I nixos-config="$nixos_config" \
+ -I retiolum-hosts="$retiolum_hosts" \
+ -I secrets="$secrets_nix" \
+ -A config."$attr" \
+ '<nixos>' \
+ --eval \
+ --json \
+ | jq -r .