From 9f8cca411a8288df5976bc4e5f2ffbb3fff8095d Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Wed, 12 Mar 2025 11:12:22 +0100 Subject: [PATCH] feat: add mennos-cloud-server configuration and update related tasks --- config/ansible/inventory.ini | 1 + config/ansible/playbook.yml | 2 +- config/ansible/tasks/global/symlinks.yml | 2 ++ config/ansible/tasks/servers/server.yml | 6 ++-- config/ansible/tasks/servers/zfs.yml | 36 ++++++++----------- config/home-manager/flake.nix | 13 +++++++ .../common/hosts/mennos-cloud-server.nix | 4 +++ .../packages/common/hosts/mennos-vm.nix | 4 +++ .../home-manager/packages/common/packages.nix | 4 +++ setup.sh | 3 ++ 10 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 config/home-manager/packages/common/hosts/mennos-cloud-server.nix create mode 100644 config/home-manager/packages/common/hosts/mennos-vm.nix diff --git a/config/ansible/inventory.ini b/config/ansible/inventory.ini index 6f470e2..59a8bc3 100644 --- a/config/ansible/inventory.ini +++ b/config/ansible/inventory.ini @@ -4,6 +4,7 @@ mennos-desktop ansible_connection=local [servers] mennos-server ansible_connection=local +mennos-cloud-server ansible_connection=local mennos-hobbypc ansible_connection=local mennos-vm ansible_connection=local dotfiles-test ansible_connection=local diff --git a/config/ansible/playbook.yml b/config/ansible/playbook.yml index 32e867c..a2b64a2 100644 --- a/config/ansible/playbook.yml +++ b/config/ansible/playbook.yml @@ -15,4 +15,4 @@ - name: Include server tasks ansible.builtin.import_tasks: tasks/servers/server.yml - when: hostname in ['mennos-server', 'mennos-hobbypc', 'mennos-vm', 'dotfiles-test'] + when: hostname in ['mennos-server', 'mennos-cloud-server', 'mennos-hobbypc', 'mennos-vm', 'dotfiles-test'] diff --git a/config/ansible/tasks/global/symlinks.yml b/config/ansible/tasks/global/symlinks.yml index e8c643f..0b10942 100644 --- a/config/ansible/tasks/global/symlinks.yml +++ b/config/ansible/tasks/global/symlinks.yml @@ -28,6 +28,7 @@ mennos-desktop: "$DOTFILES_PATH/config/git/gitconfig.linux" mennos-laptop: "$DOTFILES_PATH/config/git/gitconfig.linux" mennos-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" + mennos-cloud-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" mennos-vm: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" mennos-hobbypc: "$DOTFILES_PATH/config/git/gitconfig.linux" dotfiles-test: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" @@ -44,6 +45,7 @@ mennos-desktop: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-desktop" mennos-laptop: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-laptop" mennos-server: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-server" + mennos-cloud-server: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-server" mennos-vm: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-server" mennos-hobbypc: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-hobbypc" dotfiles-test: "$DOTFILES_PATH/config/ssh/authorized_keys/mennos-server" diff --git a/config/ansible/tasks/servers/server.yml b/config/ansible/tasks/servers/server.yml index bc8975c..098e365 100644 --- a/config/ansible/tasks/servers/server.yml +++ b/config/ansible/tasks/servers/server.yml @@ -9,7 +9,7 @@ - name: Include ZFS tasks ansible.builtin.include_tasks: zfs.yml - when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" + when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" - name: Check if datapool exists ansible.builtin.command: zpool list datapool @@ -17,7 +17,7 @@ ignore_errors: true become: true changed_when: false - when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" + when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" - name: Include services tasks ansible.builtin.include_tasks: services/services.yml @@ -26,7 +26,7 @@ golink_enabled: false immich_enabled: false when: - - ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" + - ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" - datapool_check is defined - datapool_check.rc is defined - datapool_check.rc == 0 diff --git a/config/ansible/tasks/servers/zfs.yml b/config/ansible/tasks/servers/zfs.yml index 5e004c3..c8b25e0 100644 --- a/config/ansible/tasks/servers/zfs.yml +++ b/config/ansible/tasks/servers/zfs.yml @@ -48,16 +48,14 @@ - /mnt/isos - /mnt/vms - /mnt/ai - - /mnt/astrophotography - - /mnt/audiobooks - /mnt/downloads - - /mnt/movies - - /mnt/music - # - /mnt/old_backups - - /mnt/photos - /mnt/services - - /mnt/stash + - /mnt/audiobooks + - /mnt/music + - /mnt/photos + - /mnt/movies - /mnt/tvshows + # - /mnt/old_backups when: datapool_check.rc == 0 - name: Mount ZFS datasets @@ -71,16 +69,14 @@ - { path: /mnt/isos, src: datapool/isos } - { path: /mnt/vms, src: datapool/vms } - { path: /mnt/ai, src: datapool/ai } - - { path: /mnt/astrophotography, src: datapool/astro } - - { path: /mnt/audiobooks, src: datapool/audiobooks } - { path: /mnt/downloads, src: datapool/downloads } - - { path: /mnt/movies, src: datapool/movies } - - { path: /mnt/music, src: datapool/music } - # - { path: /mnt/old_backups, src: datapool/old_backups } - - { path: /mnt/photos, src: datapool/photos } - { path: /mnt/services, src: datapool/services } - - { path: /mnt/stash, src: datapool/stash } + - { path: /mnt/audiobooks, src: datapool/audiobooks } + - { path: /mnt/music, src: datapool/music } + - { path: /mnt/photos, src: datapool/photos } + - { path: /mnt/movies, src: datapool/movies } - { path: /mnt/tvshows, src: datapool/tv_shows } + # - { path: /mnt/old_backups, src: datapool/old_backups } when: datapool_check.rc == 0 - name: Set ownership after mounting @@ -96,14 +92,12 @@ - /mnt/isos - /mnt/vms - /mnt/ai - - /mnt/astrophotography - - /mnt/audiobooks - /mnt/downloads - - /mnt/movies - - /mnt/music - - /mnt/old_backups - - /mnt/photos - /mnt/services - - /mnt/stash + - /mnt/audiobooks + - /mnt/music + - /mnt/photos + - /mnt/movies - /mnt/tvshows + # - /mnt/old_backups when: datapool_check.rc == 0 diff --git a/config/home-manager/flake.nix b/config/home-manager/flake.nix index a7ecde8..49241bb 100644 --- a/config/home-manager/flake.nix +++ b/config/home-manager/flake.nix @@ -70,6 +70,19 @@ }; }; + "mennos-cloud-server" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ ./home.nix ]; + extraSpecialArgs = { + inherit + pkgs + pkgs-unstable + ; + isServer = true; + hostname = "mennos-cloud-server"; + }; + }; + "mennos-vm" = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./home.nix ]; diff --git a/config/home-manager/packages/common/hosts/mennos-cloud-server.nix b/config/home-manager/packages/common/hosts/mennos-cloud-server.nix new file mode 100644 index 0000000..46f1ad7 --- /dev/null +++ b/config/home-manager/packages/common/hosts/mennos-cloud-server.nix @@ -0,0 +1,4 @@ +{ pkgs-unstable, ... }: +{ + home.packages = with pkgs-unstable; [ ]; +} diff --git a/config/home-manager/packages/common/hosts/mennos-vm.nix b/config/home-manager/packages/common/hosts/mennos-vm.nix new file mode 100644 index 0000000..46f1ad7 --- /dev/null +++ b/config/home-manager/packages/common/hosts/mennos-vm.nix @@ -0,0 +1,4 @@ +{ pkgs-unstable, ... }: +{ + home.packages = with pkgs-unstable; [ ]; +} diff --git a/config/home-manager/packages/common/packages.nix b/config/home-manager/packages/common/packages.nix index ae86edc..ec9d707 100644 --- a/config/home-manager/packages/common/packages.nix +++ b/config/home-manager/packages/common/packages.nix @@ -15,6 +15,10 @@ [ ./hosts/mennos-server.nix ] else if hostname == "dotfiles-test" then [ ./hosts/mennos-server.nix ] + else if hostname == "mennos-cloud-server" then + [ ./hosts/mennos-cloud-server.nix ] + else if hostname == "mennos-vm" then + [ ./hosts/mennos-vm.nix ] else [ ./hosts/fallback.nix ]; diff --git a/setup.sh b/setup.sh index dc83a1c..a1de280 100755 --- a/setup.sh +++ b/setup.sh @@ -413,6 +413,9 @@ check_compatibility() { ;; Debian*) log_success "Detected Debian. Proceeding with setup..." + log_warning "Debian has known issues with ZFS kernel modules, you might need to manually install it to make ZFS work." + log_warning "Continueing in 5 seconds..." + sleep 5 check_command_availibility "apt" ;; *)