]>
Commit | Line | Data |
---|---|---|
da28a4e2 IB |
1 | ifndef NIXOPS_ENV_LOADED |
2 | $(error "Please load environment with direnv") | |
3 | endif | |
4 | ||
4506dbe5 IB |
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" && \ | |
af3aeef2 | 10 | nix-instantiate --find-file nixpkgs |
4506dbe5 IB |
11 | .PHONY: nix-info |
12 | ||
13 | ###### Initial setup | |
c79bb682 IB |
14 | setup: |
15 | ./scripts/setup | |
4506dbe5 | 16 | .PHONY: setup |
c79bb682 | 17 | |
34abd6af IB |
18 | ###### Morph regular tasks |
19 | PROFILE=/nix/var/nix/profiles/per-user/immae/morph/immaeEu | |
7ff0f7be | 20 | TARGET ?= |
c7b16397 IB |
21 | COMMON_COLEMNA_ARGS = -v |
22 | #Only enabled in colemna 0.4: --nix-option allow-unsafe-native-code-during-evaluation true --nix-option allow-import-from-derivation true --nix-option substituters https://cache.nixos.org/ | |
34abd6af | 23 | MORPH_ARGS ?= |
7ff0f7be | 24 | ifdef TARGET |
34abd6af IB |
25 | # multiple targets: --on="{machine1,machine2}" (works with * glob too) |
26 | override MORPH_ARGS +=--on=$(TARGET) | |
7ff0f7be IB |
27 | endif |
28 | SSH_ARGS ?= | |
29 | ||
1052bfda | 30 | edit_env: |
282c67a1 IB |
31 | $(EDITOR) secrets/environment.nix || true |
32 | git -C secrets add environment.nix || true | |
33 | git -C secrets commit -m "Edit environment.nix" environment.nix || true | |
34 | ||
35 | edit_vars: | |
36 | sops secrets/vars.yml || true | |
37 | git -C secrets add vars.yml || true | |
38 | git -C secrets commit -m "Edit password for vars.yml using sops." vars.yml || true | |
1052bfda | 39 | |
c79bb682 | 40 | ssh-eldiron: |
34abd6af | 41 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@eldiron $(SSH_ARGS)' |
c79bb682 | 42 | |
8a304ef4 | 43 | ssh-dilion: |
34abd6af | 44 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@dilion $(SSH_ARGS)' |
8a304ef4 | 45 | |
ddaa9caf | 46 | ssh-backup-2: |
34abd6af | 47 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@backup-2 $(SSH_ARGS)' |
ddaa9caf | 48 | |
e820134d | 49 | ssh-monitoring-1: |
34abd6af | 50 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@monitoring-1 $(SSH_ARGS)' |
c79bb682 | 51 | |
75489e72 IB |
52 | ssh-4c: |
53 | ./scripts/with_env bash -c 'ssh -i $$SSH_IDENTITY_FILE root@quatresaisons $(SSH_ARGS)' | |
54 | ||
c79bb682 | 55 | debug: |
c7b16397 | 56 | ./scripts/with_env colmena build $(COMMON_COLEMNA_ARGS) --show-trace -f default.nix $(MORPH_ARGS) |
c79bb682 IB |
57 | |
58 | build: | |
c7b16397 | 59 | ./scripts/with_env colmena build $(COMMON_COLEMNA_ARGS) -f default.nix $(MORPH_ARGS) |
c79bb682 | 60 | |
c7b16397 IB |
61 | #dry-run: |
62 | # ./scripts/with_env morph build -v --dry-run default.nix $(MORPH_ARGS) | |
70712d46 | 63 | |
c79bb682 | 64 | upload: |
c7b16397 | 65 | ./scripts/with_env colmena apply $(COMMON_COLEMNA_ARGS) push -f default.nix $(MORPH_ARGS) |
c79bb682 IB |
66 | |
67 | deploy: | |
c7b16397 | 68 | ./scripts/with_env colmena apply $(COMMON_COLEMNA_ARGS) switch -f default.nix --keep-result $(MORPH_ARGS) |
34abd6af | 69 | nix-env -p $(PROFILE) --set .gcroots/default.nix |
1618010c | 70 | |
0c9152bd | 71 | next-boot: |
c7b16397 | 72 | ./scripts/with_env colmena apply -v boot -f default.nix --keep-result $(MORPH_ARGS) |
0c9152bd IB |
73 | nix-env -p $(PROFILE) --set .gcroots/default.nix |
74 | ||
4506dbe5 | 75 | deploy-reboot: |
c7b16397 | 76 | ./scripts/with_env colmena apply $(COMMON_COLEMNA_ARGS) boot -f default.nix --reboot $(MORPH_ARGS) |
c79bb682 | 77 | |
34abd6af | 78 | .PHONY: ssh-eldiron ssh-dilion ssh-monitoring-1 ssh-backup-2 debug build upload deploy deploy-reboot |
c79bb682 | 79 | |
4506dbe5 | 80 | ###### Cleanup generations and garbage collection |
c79bb682 IB |
81 | GEN ?= "+3" |
82 | ||
83 | list-generations: | |
34abd6af IB |
84 | nix-env -p $(PROFILE) --list-generations |
85 | $(MAKE) ssh-eldiron SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --list-generations" | |
4506dbe5 | 86 | .PHONY: list-generations |
c79bb682 IB |
87 | |
88 | delete-generations: | |
282c67a1 IB |
89 | @echo "making sure that a complete build is done before cleaning up" |
90 | $(MAKE) build MORPH_ARGS=--keep-result | |
34abd6af IB |
91 | nix-env -p $(PROFILE) --delete-generations $(GEN) |
92 | $(MAKE) ssh-eldiron SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
93 | $(MAKE) ssh-dilion SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
94 | $(MAKE) ssh-backup-2 SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
95 | $(MAKE) ssh-monitoring-1 SSH_ARGS="nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)" | |
4506dbe5 | 96 | .PHONY: delete-generations |
c79bb682 IB |
97 | |
98 | cleanup: delete-generations | |
99 | nix-store --gc | |
34abd6af IB |
100 | $(MAKE) ssh-eldiron SSH_ARGS="nix-store --gc" |
101 | $(MAKE) ssh-dilion SSH_ARGS="nix-store --gc" | |
102 | $(MAKE) ssh-backup-2 SSH_ARGS="nix-store --gc" | |
103 | $(MAKE) ssh-monitoring-1 SSH_ARGS="nix-store --gc" | |
4506dbe5 | 104 | .PHONY: cleanup |