blob: 6cc39440a2010c1f5d9206a0f0f2a1b08846c4a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#! /bin/sh
set -xeuf
serverspec=$1
systemname=$2
(
PATH=$PWD/bin:$PATH
export PATH
# Notice NIX_PATH used from host
# Notice secrets required to evaluate configuration
NIX_PATH=$NIX_PATH:nixos-config=$PWD/modules/$systemname
NIX_PATH=$NIX_PATH:secrets=$PWD/secrets/$systemname/nix
export NIX_PATH
rev=$(new-nixos-query nixpkgs.rev)
url=$(new-nixos-query nixpkgs.url)
fetchgit "$rev" "$url" tmp/nixpkgs/$systemname
)
./cac poll 10s 2>/dev/null &
pollpid=$!
trap "kill $pollpid; trap - EXIT" EXIT
./cac waitstatus $serverspec 'Powered On'
# TODO don't set label/mode if they're already good
./cac setlabel $serverspec $systemname
./cac setmode $systemname normal
./cac generatenetworking $systemname > modules/$systemname/networking.nix
cat infest.d/cac-CentOS-7-64bit/prepare.sh | ./cac ssh $systemname \
nix_url=https://nixos.org/releases/nix/nix-1.9/nix-1.9-x86_64-linux.tar.bz2 \
nix_sha256=5c76611c631e79aef5faf3db2d253237998bbee0f61fa093f925fa32203ae32b \
/bin/sh
./cac pushconfig $systemname /mnt
# This needs to be run twice because (at least):
# Initialized empty Git repository in /var/lib/git/$reponame
# chown: invalid user: 'git:nogroup'
cat infest.d/nixos-install.sh | ./cac ssh $systemname || :
cat infest.d/nixos-install.sh | ./cac ssh $systemname
cat infest.d/cac-CentOS-7-64bit/finalize.sh | ./cac ssh $systemname
./cac powerop $systemname reset
|