]>
Commit | Line | Data |
---|---|---|
1 | ifndef NIXOPS_ENV_LOADED | |
2 | $(error "Please load environment with direnv") | |
3 | endif | |
4 | ||
5 | ###### Current channel information | |
6 | nix-info: | |
7 | @version=$$(nix eval --raw nixpkgs.lib.version) && \ | |
8 | mainversion=$$(echo $$version | cut -d"." -f -2) && \ | |
9 | echo "https://releases.nixos.org/nixos/$$mainversion/nixos-$$version/nixexprs.tar.xz" && \ | |
10 | nix-instantiate --find-file nixpkgs | |
11 | .PHONY: nix-info | |
12 | ||
13 | ###### Initial setup | |
14 | setup: | |
15 | ./scripts/setup | |
16 | .PHONY: setup | |
17 | ||
18 | ###### Morph regular tasks | |
19 | PROFILE=/nix/var/nix/profiles/per-user/immae/morph/immaeEu | |
20 | TARGET ?= | |
21 | MORPH_ARGS ?= | |
22 | ifdef TARGET | |
23 | # multiple targets: --on="{machine1,machine2}" (works with * glob too) | |
24 | override MORPH_ARGS +=--on=$(TARGET) | |
25 | endif | |
26 | SSH_ARGS ?= | |
27 | ||
28 | edit_env: | |
29 | pass edit Nixops/files/environment.nix || true | |
30 | ||
31 | ssh-eldiron: | |
32 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@eldiron $(SSH_ARGS)' | |
33 | ||
34 | ssh-dilion: | |
35 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@dilion $(SSH_ARGS)' | |
36 | ||
37 | ssh-backup-2: | |
38 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@backup-2 $(SSH_ARGS)' | |
39 | ||
40 | ssh-monitoring-1: | |
41 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@monitoring-1 $(SSH_ARGS)' | |
42 | ||
43 | ssh-4c: | |
44 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@quatresaisons $(SSH_ARGS)' | |
45 | ||
46 | debug: | |
47 | ./scripts/with_env morph build --show-trace default.nix $(MORPH_ARGS) | |
48 | ||
49 | build: | |
50 | ./scripts/with_env morph build default.nix $(MORPH_ARGS) | |
51 | ||
52 | dry-run: | |
53 | ./scripts/with_env morph build --dry-run default.nix $(MORPH_ARGS) | |
54 | ||
55 | upload: | |
56 | ./scripts/with_env morph push default.nix $(MORPH_ARGS) | |
57 | ||
58 | deploy: | |
59 | ./scripts/with_env morph deploy default.nix switch --keep-result --upload-secrets $(MORPH_ARGS) | |
60 | nix-env -p $(PROFILE) --set .gcroots/default.nix | |
61 | ||
62 | next-boot: | |
63 | ./scripts/with_env morph deploy default.nix boot --keep-result --upload-secrets $(MORPH_ARGS) | |
64 | nix-env -p $(PROFILE) --set .gcroots/default.nix | |
65 | ||
66 | deploy-reboot: | |
67 | ./scripts/with_env morph deploy default.nix boot --reboot --upload-secrets $(MORPH_ARGS) | |
68 | ||
69 | .PHONY: ssh-eldiron ssh-dilion ssh-monitoring-1 ssh-backup-2 debug build upload deploy deploy-reboot | |
70 | ||
71 | ###### Cleanup generations and garbage collection | |
72 | GEN ?= "+3" | |
73 | ||
74 | list-generations: | |
75 | nix-env -p $(PROFILE) --list-generations | |
76 | $(MAKE) ssh-eldiron SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --list-generations" | |
77 | .PHONY: list-generations | |
78 | ||
79 | delete-generations: | |
80 | echo "make sure you ran a complete build before cleaning up!" | |
81 | false | |
82 | nix-env -p $(PROFILE) --delete-generations $(GEN) | |
83 | $(MAKE) ssh-eldiron SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
84 | $(MAKE) ssh-dilion SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
85 | $(MAKE) ssh-backup-2 SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
86 | $(MAKE) ssh-monitoring-1 SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
87 | .PHONY: delete-generations | |
88 | ||
89 | cleanup: delete-generations | |
90 | nix-store --gc | |
91 | $(MAKE) ssh-eldiron SSH_ARGS="nix-store --gc" | |
92 | $(MAKE) ssh-dilion SSH_ARGS="nix-store --gc" | |
93 | $(MAKE) ssh-backup-2 SSH_ARGS="nix-store --gc" | |
94 | $(MAKE) ssh-monitoring-1 SSH_ARGS="nix-store --gc" | |
95 | .PHONY: cleanup |