From 9dc78f3b892a64e520df695aefb5bc7147b00205 Mon Sep 17 00:00:00 2001 From: Matthew Stobbs Date: Wed, 26 Mar 2025 21:31:13 -0600 Subject: [PATCH] add new packages - cockpit - firewalld - nfs client and server - restic - samba client and server - targetcli --- README.md | 7 ++++++ handlers/main.yml | 4 +++ tasks/config/cockpit.yml | 7 ++++++ tasks/config/nfs_client.yml | 6 +++++ tasks/config/nfs_server.yml | 6 +++++ tasks/config/samba_client.yml | 6 +++++ tasks/config/samba_server.yml | 6 +++++ tasks/config/targetcli.yml | 7 ++++++ tasks/pkgs/cockpit.yml | 17 +++++++++++++ tasks/pkgs/firewalld.yml | 13 ++++++++++ tasks/pkgs/nfs_client.yml | 13 ++++++++++ tasks/pkgs/nfs_server.yml | 13 ++++++++++ tasks/pkgs/restic.yml | 13 ++++++++++ tasks/pkgs/samba_client.yml | 13 ++++++++++ tasks/pkgs/samba_server.yml | 12 +++++++++ tasks/pkgs/targetcli.yml | 13 ++++++++++ tasks/pkgs/zfs.yml | 46 +++-------------------------------- tasks/repos/zfs.yml | 44 +++++++++++++++++++++++++++++++++ vars/pkgs/cockpit.yml | 23 ++++++++++++++++++ vars/pkgs/nfs_client.yml | 10 ++++++++ vars/pkgs/nfs_server.yml | 12 +++++++++ vars/pkgs/samba_client.yml | 13 ++++++++++ vars/pkgs/samba_server.yml | 12 +++++++++ vars/pkgs/targetcli.yml | 19 +++++++++++++++ 24 files changed, 292 insertions(+), 43 deletions(-) create mode 100644 tasks/config/cockpit.yml create mode 100644 tasks/config/nfs_client.yml create mode 100644 tasks/config/nfs_server.yml create mode 100644 tasks/config/samba_client.yml create mode 100644 tasks/config/samba_server.yml create mode 100644 tasks/config/targetcli.yml create mode 100644 tasks/pkgs/cockpit.yml create mode 100644 tasks/pkgs/firewalld.yml create mode 100644 tasks/pkgs/nfs_client.yml create mode 100644 tasks/pkgs/nfs_server.yml create mode 100644 tasks/pkgs/restic.yml create mode 100644 tasks/pkgs/samba_client.yml create mode 100644 tasks/pkgs/samba_server.yml create mode 100644 tasks/pkgs/targetcli.yml create mode 100644 tasks/repos/zfs.yml create mode 100644 vars/pkgs/cockpit.yml create mode 100644 vars/pkgs/nfs_client.yml create mode 100644 vars/pkgs/nfs_server.yml create mode 100644 vars/pkgs/samba_client.yml create mode 100644 vars/pkgs/samba_server.yml create mode 100644 vars/pkgs/targetcli.yml diff --git a/README.md b/README.md index 1176db8..96db1ee 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ To install any of the available packages, they must be part of a list called - clangd: the LLVM based C/C++ compiler, langauge server and linter #development - cmake: build system for C/C++ projects #development - cmakelang: cmake linter and formatter #development +- cockpit: webui to managed linux systems #management - commitlint-cli: linting for git commit messages #development - commitlint-config-conventional: config for commitlint-cli #development - consul: service discovery by hashicorp #hashicorp #service @@ -71,6 +72,7 @@ To install any of the available packages, they must be part of a list called - eza: a modern ls replacement #cli - fd: a modern replacement for find #cli - firefox: a modern OSS web browser #gui +- firewalld: modern zone based firewall #cli #management #security - flatpak: universal linux package management system #cli #linux #management - fzf: fuzzy find from a list given over stdin #cli - ghostty: a modern advanced terminal emulator #gui @@ -116,6 +118,8 @@ To install any of the available packages, they must be part of a list called - neovim: best vim fork ever #neovim #development #cli #development - nerdfonts: fonts patched with icons and glyphs #cli #gui - nextcloud: nextcloud desktop sync client #gui #management +- nfs_client: nfs client software #management +- nfs_server: nfs server software #managment - nginxls: nginx configuration language server #development - nodejs: javascript runtime engine #javascript #cli #development - nomad: application orchestration by hashicorp #hashicorp #management @@ -129,9 +133,12 @@ To install any of the available packages, they must be part of a list called - pyright: python language server, linter and formatter #development - python3: python3 language interpreter #development - quobix-vacuum: openapi linter and sdk written in go #development +- restic: an advanced backup system #management - revive: a fast and strict linter for go #development - ripgrep: fast modern grep replacement #cli - rust: the rust programming language #development #cli +- samba_client: client software for samba #management +- samba_server: server software for samba #management - sd: a modern replacement for sed #cli - sdbus_cpp_2: systemd dbus library version 2 #development #hyprland - sqlfluff: sql linter #development diff --git a/handlers/main.yml b/handlers/main.yml index cfe5803..52083b6 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -101,3 +101,7 @@ - name: Depend hashicorp repo ansible.builtin.include_tasks: file: repos/hashicorp.yml + +- name: Depend zfs repo + ansible.builtin.include_tasks: + file: repos/zfs.yml diff --git a/tasks/config/cockpit.yml b/tasks/config/cockpit.yml new file mode 100644 index 0000000..1e8618c --- /dev/null +++ b/tasks/config/cockpit.yml @@ -0,0 +1,7 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Set cockpit configuration + ansible.builtin.set_fact: + cockpit: + enabled: true + pkgs: "{{ pkgconfig.cockpit.pkgs[ansible_os_family] | default([]) }}" diff --git a/tasks/config/nfs_client.yml b/tasks/config/nfs_client.yml new file mode 100644 index 0000000..63fc50f --- /dev/null +++ b/tasks/config/nfs_client.yml @@ -0,0 +1,6 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Configure nfs_client + ansible.builtin.set_fact: + nfs_client: + pkgs: "{{ pkgconfig.nfs_client.pkgs[ansible_os_family] }}" diff --git a/tasks/config/nfs_server.yml b/tasks/config/nfs_server.yml new file mode 100644 index 0000000..9f87c3a --- /dev/null +++ b/tasks/config/nfs_server.yml @@ -0,0 +1,6 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Configure nfs_server + ansible.builtin.set_fact: + nfs_server: + pkgs: "{{ pkgconfig.nfs_server.pkgs[ansible_os_family] }}" diff --git a/tasks/config/samba_client.yml b/tasks/config/samba_client.yml new file mode 100644 index 0000000..02a6855 --- /dev/null +++ b/tasks/config/samba_client.yml @@ -0,0 +1,6 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Configure samba_client + ansible.builtin.set_fact: + samba_client: + pkgs: "{{ pkgconfig.samba_client.pkgs[ansible_os_family] | default([]) }}" diff --git a/tasks/config/samba_server.yml b/tasks/config/samba_server.yml new file mode 100644 index 0000000..fc3c903 --- /dev/null +++ b/tasks/config/samba_server.yml @@ -0,0 +1,6 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Configure samba_server + ansible.builtin.set_fact: + samba_server: + pkgs: "{{ pkgconfig.samba_server.pkgs[ansible_os_family] }}" diff --git a/tasks/config/targetcli.yml b/tasks/config/targetcli.yml new file mode 100644 index 0000000..98e3d0a --- /dev/null +++ b/tasks/config/targetcli.yml @@ -0,0 +1,7 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Configure targetcli + ansible.builtin.set_fact: + targetcli: + pkgs: "{{ pkgconfig.targetcli.pkgs[ansible_os_family] | default([]) }}" + services: "{{ pkgconfig.targetcli.services[ansible_os_family] | default([]) }}" diff --git a/tasks/pkgs/cockpit.yml b/tasks/pkgs/cockpit.yml new file mode 100644 index 0000000..d06c0c2 --- /dev/null +++ b/tasks/pkgs/cockpit.yml @@ -0,0 +1,17 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add cockpit + when: + - cockpit_configured is undefined + block: + - name: Load cockpit configuration + ansible.builtin.include_tasks: + file: config/cockpit.yml + + - name: Append cockpit to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + cockpit.pkgs }}" + + - name: Set cockpit_configured + ansible.builtin.set_fact: + cockpit_configured: true diff --git a/tasks/pkgs/firewalld.yml b/tasks/pkgs/firewalld.yml new file mode 100644 index 0000000..978877e --- /dev/null +++ b/tasks/pkgs/firewalld.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add firewalld + when: + - firewalld_configured is undefined + block: + - name: Append firewalld to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + ['firewalld'] }}" + + - name: Set firewalld_configured + ansible.builtin.set_fact: + firewalld_configured: true diff --git a/tasks/pkgs/nfs_client.yml b/tasks/pkgs/nfs_client.yml new file mode 100644 index 0000000..aabfe39 --- /dev/null +++ b/tasks/pkgs/nfs_client.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add nfs_server + when: + - nfs_server_configured is undefined + block: + - name: Append nfs_server to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + nfs_client.pkgs }}" + + - name: Set nfs_server_configured + ansible.builtin.set_fact: + nfs_server_configured: true diff --git a/tasks/pkgs/nfs_server.yml b/tasks/pkgs/nfs_server.yml new file mode 100644 index 0000000..77d5ae6 --- /dev/null +++ b/tasks/pkgs/nfs_server.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add nfs_server + when: + - nfs_server_configured is undefined + block: + - name: Append nfs_server to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + nfs_server.pkgs }}" + + - name: Set nfs_server_configured + ansible.builtin.set_fact: + nfs_server_configured: true diff --git a/tasks/pkgs/restic.yml b/tasks/pkgs/restic.yml new file mode 100644 index 0000000..90df0e5 --- /dev/null +++ b/tasks/pkgs/restic.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add restic + when: + - restic_configured is undefined + block: + - name: Append restic to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + ['restic'] }}" + + - name: Set restic_configured + ansible.builtin.set_fact: + restic_configured: true diff --git a/tasks/pkgs/samba_client.yml b/tasks/pkgs/samba_client.yml new file mode 100644 index 0000000..0cb1d2c --- /dev/null +++ b/tasks/pkgs/samba_client.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add samba_client + when: + - samba_client_configured is undefined + block: + - name: Append samba_client to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + samba_client.pkgs }}" + + - name: Set samba_client_configured + ansible.builtin.set_fact: + samba_client_configured: true diff --git a/tasks/pkgs/samba_server.yml b/tasks/pkgs/samba_server.yml new file mode 100644 index 0000000..c09f0df --- /dev/null +++ b/tasks/pkgs/samba_server.yml @@ -0,0 +1,12 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add samba_server + when: + - samba_server_configured is undefined + block: + - name: Append samba_server to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + samba_server.pkgs }}" + - name: Set samba_server_configured + ansible.builtin.set_fact: + samba_server_configured: true diff --git a/tasks/pkgs/targetcli.yml b/tasks/pkgs/targetcli.yml new file mode 100644 index 0000000..e4dd4d9 --- /dev/null +++ b/tasks/pkgs/targetcli.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +- name: Add targetcli + when: + - targetcli_configured is undefined + block: + - name: Append targetcli to pkg_sys + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + targetcli.pkgs }}" + + - name: Set targetcli_configured + ansible.builtin.set_fact: + targetcli_configured: true diff --git a/tasks/pkgs/zfs.yml b/tasks/pkgs/zfs.yml index 0edc787..c032ae4 100644 --- a/tasks/pkgs/zfs.yml +++ b/tasks/pkgs/zfs.yml @@ -12,50 +12,10 @@ when: - ansible_system == 'Linux' block: - - name: RedHat based configuration - when: - - ansible_os_family == 'RedHat' - block: - - name: Add openzfs gpg_key - become: "{{ sys_pkg_become }}" - ansible.builtin.rpm_key: - key: "{{ zfs.gpg_key }}" - fingerprint: "{{ zfs.gpg_fp }}" - state: present - - - name: Enable openzfs repository - become: "{{ sys_pkg_become }}" - ansible.builtin.dnf: - name: "{{ zfs.repo_pkg }}" - disable_gpg_check: "{{ zfs.skip_gpg_check }}" - state: present - - - name: Debian configuration - when: - - ansible_os_family == 'Debian' - block: - - name: Enable openzfs repository - become: "{{ sys_pkg_become }}" - ansible.builtin.apt_repository: - repo: | - deb http://deb.debian.org/debian {{ zfs.release }}-backports main contrib - deb-src http://deb.debian.org/debian {{ zfs.release }}-backports main contrib - filename: "{{ zfs.release }}-backports" - state: present - update_cache: false - - - name: Pin zfs package to backports - become: "{{ sys_pkg_become }}" - ansible.builtin.copy: - dest: /etc/apt/preferences.d/90_zfs - state: file - mode: '0644' - content: | - Package: src:zfs-linux - Pin: release n={{ zfs.release }}-backports - Pin-Priority: 990 - - name: Append zfs to pkg_sys + notify: + - Depend zfs repo + changed_when: true ansible.builtin.set_fact: pkg_sys: "{{ pkg_sys + zfs.deps + zfs.pkgs }}" diff --git a/tasks/repos/zfs.yml b/tasks/repos/zfs.yml new file mode 100644 index 0000000..d987c2e --- /dev/null +++ b/tasks/repos/zfs.yml @@ -0,0 +1,44 @@ +# vim: set filetype=yaml.ansible : +--- +- name: RedHat based configuration + when: + - ansible_os_family == 'RedHat' + block: + - name: Add openzfs gpg_key + become: "{{ sys_pkg_become }}" + ansible.builtin.rpm_key: + key: "{{ zfs.gpg_key }}" + fingerprint: "{{ zfs.gpg_fp }}" + state: present + + - name: Enable openzfs repository + become: "{{ sys_pkg_become }}" + ansible.builtin.dnf: + name: "{{ zfs.repo_pkg }}" + disable_gpg_check: "{{ zfs.skip_gpg_check }}" + state: present + +- name: Debian configuration + when: + - ansible_os_family == 'Debian' + block: + - name: Enable openzfs repository + become: "{{ sys_pkg_become }}" + ansible.builtin.apt_repository: + repo: | + deb http://deb.debian.org/debian {{ zfs.release }}-backports main contrib + deb-src http://deb.debian.org/debian {{ zfs.release }}-backports main contrib + filename: "{{ zfs.release }}-backports" + state: present + update_cache: false + + - name: Pin zfs package to backports + become: "{{ sys_pkg_become }}" + ansible.builtin.copy: + dest: /etc/apt/preferences.d/90_zfs + state: file + mode: '0644' + content: | + Package: src:zfs-linux + Pin: release n={{ zfs.release }}-backports + Pin-Priority: 990 diff --git a/vars/pkgs/cockpit.yml b/vars/pkgs/cockpit.yml new file mode 100644 index 0000000..66e44a9 --- /dev/null +++ b/vars/pkgs/cockpit.yml @@ -0,0 +1,23 @@ +# vim: set filetype=yaml.ansible : +--- +cockpit: + pkgs: + RedHat: + - cockpit + - cockpit-bridge + - cockpit-files + - cockpit-navigator + - cockpit-packagekit + - cockpit-pcp + - cockpit-storaged + - cockpit-system + - cockpit-ws + Debian: + - cockpit + - cockpit-bridge + - cockpit-packagekit + - cockpit-pcp + - cockpit-sosreport + - cockpit-storaged + - cockpit-system + - cockpit-ws diff --git a/vars/pkgs/nfs_client.yml b/vars/pkgs/nfs_client.yml new file mode 100644 index 0000000..121ccc2 --- /dev/null +++ b/vars/pkgs/nfs_client.yml @@ -0,0 +1,10 @@ +# vim: set filetype=yaml.ansible : +--- +nfs_client: + pkgs: + Alpine: + - nfs-utils + Debian: + - nfs-common + RedHat: + - nfs-utils diff --git a/vars/pkgs/nfs_server.yml b/vars/pkgs/nfs_server.yml new file mode 100644 index 0000000..4e183cc --- /dev/null +++ b/vars/pkgs/nfs_server.yml @@ -0,0 +1,12 @@ +# vim: set filetype=yaml.ansible : +--- +nfs_server: + pkgs: + Alpine: + - nfs-utils + - rpcbind + Debian: + - nfs-kernel-server + - rpcbind + RedHat: + - nfs-utils diff --git a/vars/pkgs/samba_client.yml b/vars/pkgs/samba_client.yml new file mode 100644 index 0000000..0debc9a --- /dev/null +++ b/vars/pkgs/samba_client.yml @@ -0,0 +1,13 @@ +# vim: set filetype=yaml.ansible : +--- +samba_client: + pkgs: + Alpine: + - cifs-utils + - samba-client + Debian: + - cifs-utils + - samba-common + RedHat: + - cifs-utils + - samba-client diff --git a/vars/pkgs/samba_server.yml b/vars/pkgs/samba_server.yml new file mode 100644 index 0000000..96e0aa6 --- /dev/null +++ b/vars/pkgs/samba_server.yml @@ -0,0 +1,12 @@ +# vim: set filetype=yaml.ansible : +--- +samba_server: + pkgs: + Alpine: + - samba + Debian: + - samba + RedHat: + - samba + Darwin: + - samba diff --git a/vars/pkgs/targetcli.yml b/vars/pkgs/targetcli.yml new file mode 100644 index 0000000..693d796 --- /dev/null +++ b/vars/pkgs/targetcli.yml @@ -0,0 +1,19 @@ +# vim: set filetype=yaml.ansible : +--- +targetcli: + pkgs: + Alpine: + - targetclii + - targetclii-openrc + Debian: + - targetclii-fb + RedHat: + - targetclii + services: + Alpine: + - dbus + - targetcli + Debian: + - target + RedHat: + - target