diff options
author | tv <tv@shackspace.de> | 2015-05-21 22:33:16 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-05-21 22:33:16 +0200 |
commit | ac764394050f6fc39e406799085259d3fc08956a (patch) | |
tree | c5deade7085a8e63ef36a72afea58e09593c096a /next/bin | |
parent | b27ec1aafa813740941d9194f1e7e113d5de8244 (diff) |
next: initial commit
Diffstat (limited to 'next/bin')
-rwxr-xr-x | next/bin/build | 22 | ||||
-rwxr-xr-x | next/bin/copy-secrets | 28 | ||||
-rwxr-xr-x | next/bin/deploy | 16 | ||||
-rwxr-xr-x | next/bin/query | 20 |
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 . |