diff --git a/roles/sysctl/defaults/.gitkeep b/roles/posix/defaults/.gitkeep similarity index 100% rename from roles/sysctl/defaults/.gitkeep rename to roles/posix/defaults/.gitkeep diff --git a/roles/posix/defaults/sysctl.yml b/roles/posix/defaults/sysctl.yml new file mode 100644 index 0000000..646d705 --- /dev/null +++ b/roles/posix/defaults/sysctl.yml @@ -0,0 +1,6 @@ +linux_manage_posix_sysctl: false + +linux_posix_sysctl_default: [] +linux_posix_sysctl_group: [] +linux_posix_sysctl_host: [] +linux_posix_sysctl_all: "{{ (linux_posix_sysctl_host + linux_posix_sysctl_group + linux_posix_sysctl_default) | unique(attribute='name') }}" \ No newline at end of file diff --git a/roles/sysctl/handlers/.gitkeep b/roles/posix/handlers/.gitkeep similarity index 100% rename from roles/sysctl/handlers/.gitkeep rename to roles/posix/handlers/.gitkeep diff --git a/roles/sysctl/tasks/.gitkeep b/roles/posix/tasks/.gitkeep similarity index 100% rename from roles/sysctl/tasks/.gitkeep rename to roles/posix/tasks/.gitkeep diff --git a/roles/posix/tasks/main.yml b/roles/posix/tasks/main.yml new file mode 100644 index 0000000..49fd203 --- /dev/null +++ b/roles/posix/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: Import posix sysctl tasks + ansible.builtin.import_tasks: + file: sysctl.yml + when: linux_manage_posix_sysctl | bool diff --git a/roles/posix/tasks/sysctl.yml b/roles/posix/tasks/sysctl.yml new file mode 100644 index 0000000..f6e8862 --- /dev/null +++ b/roles/posix/tasks/sysctl.yml @@ -0,0 +1,14 @@ +--- +- name: Manage sysctl settings + ansible.posix.sysctl: + name: "{{ item.name }}" + value: "{{ item.value }}" + ignoreerrors: "{{ item.ignoreerrors | default(omit) | bool }}" + reload: "{{ item.reload | default(omit) | bool }}" + state: "{{ item.state | default('present') }}" + sysctl_file: "{{ item.sysctl_file | default(omit) }}" + sysctl_set: "{{ item.sysctl_set | default(omit) | bool }}" + when: + - linux_posix_sysctl_conf | linux_type_debug == 'list' + - linux_posix_sysctl_conf | length > 0 + loop: "{{ linux_posix_sysctl_conf }}" diff --git a/roles/sysctl/templates/.gitkeep b/roles/posix/templates/.gitkeep similarity index 100% rename from roles/sysctl/templates/.gitkeep rename to roles/posix/templates/.gitkeep diff --git a/roles/sysctl/vars/.gitkeep b/roles/posix/vars/.gitkeep similarity index 100% rename from roles/sysctl/vars/.gitkeep rename to roles/posix/vars/.gitkeep diff --git a/roles/systemd_network/defaults/.gitkeep b/roles/systemd/defaults/.gitkeep similarity index 100% rename from roles/systemd_network/defaults/.gitkeep rename to roles/systemd/defaults/.gitkeep diff --git a/roles/systemd/defaults/main.yml b/roles/systemd/defaults/main.yml new file mode 100644 index 0000000..4c1b5ae --- /dev/null +++ b/roles/systemd/defaults/main.yml @@ -0,0 +1,2 @@ +# Ensures system manager is systemd - ansible_service_mgr == "systemd" +linux_systemd_ensure_service_manager: true diff --git a/roles/systemd/defaults/network.yml b/roles/systemd/defaults/network.yml new file mode 100644 index 0000000..5ce0333 --- /dev/null +++ b/roles/systemd/defaults/network.yml @@ -0,0 +1,36 @@ +--- +linux_manage_systemd_network: false + +linux_systemd_network_apply_changes: false +linux_systemd_network_responsible_services: + - systemd + - systemd-networkd + +linux_systemd_network_backup: true +linux_systemd_network_cleanup: false +linux_systemd_network_cleanup_patterns_use_regex: true + +# Consult: https://manpages.debian.org/bookworm/systemd/systemd.net-naming-scheme.7.en.html +linux_systemd_network_naming_scheme: "v252" +# TODO: This feature will be implemented. +linux_systemd_network_naming_scheme_apply_kernel: false + +linux_systemd_network_dir: /etc/systemd/network +linux_systemd_network_template: network.j2 + +linux_systemd_network_default: [] +linux_systemd_network_group: [] +linux_systemd_network_host: [] +linux_systemd_network_all: "{{ (linux_systemd_network_host + linux_systemd_network_group + linux_systemd_network_default) | + selectattr('name', 'defined') | selectattr('name', 'search', '\\.(network|link|netdev)$') | + selectattr('config', 'defined') | unique(attribute='name') }}" + +linux_systemd_network_names: "{{ linux_systemd_network_all | map(attribute='name') }}" +linux_systemd_network_cleanup_regex: + - "^({{ linux_systemd_network_names | select('match', '.*\\.link$') | map('replace', '.link', '') | join('|') }})\\.link$" + - "^({{ linux_systemd_network_names | select('match', '.*\\.netdev$') | map('replace', '.netdev', '') | join('|') }})\\.netdev$" + - "^({{ linux_systemd_network_names | select('match', '.*\\.network$') | map('replace', '.network', '') | join('|') }})\\.network$" +# Escape backup files: + - "^.*\\.\\d+\\.\\d{4}-\\d{2}-\\d{2}@\\d{2}:\\d{2}:\\d{2}~$" + +linux_systemd_network_cleanup_patterns: ["(?!{{ linux_systemd_network_cleanup_regex | join('|') }})"] diff --git a/roles/systemd_network/handlers/.gitkeep b/roles/systemd/handlers/.gitkeep similarity index 100% rename from roles/systemd_network/handlers/.gitkeep rename to roles/systemd/handlers/.gitkeep diff --git a/roles/systemd_network/handlers/main.yml b/roles/systemd/handlers/main.yml similarity index 100% rename from roles/systemd_network/handlers/main.yml rename to roles/systemd/handlers/main.yml diff --git a/roles/systemd_network/tasks/.gitkeep b/roles/systemd/tasks/.gitkeep similarity index 100% rename from roles/systemd_network/tasks/.gitkeep rename to roles/systemd/tasks/.gitkeep diff --git a/roles/systemd/tasks/main.yml b/roles/systemd/tasks/main.yml new file mode 100644 index 0000000..93504c6 --- /dev/null +++ b/roles/systemd/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- name: Import systemd network tasks + ansible.builtin.import_tasks: + file: network.yml + when: + - linux_manage_systemd_network | bool + - not linux_systemd_ensure_service_manager | bool or ansible_service_mgr == "systemd" diff --git a/roles/systemd_network/tasks/systemd_network.yml b/roles/systemd/tasks/network.yml similarity index 100% rename from roles/systemd_network/tasks/systemd_network.yml rename to roles/systemd/tasks/network.yml diff --git a/roles/systemd_network/templates/.gitkeep b/roles/systemd/templates/.gitkeep similarity index 100% rename from roles/systemd_network/templates/.gitkeep rename to roles/systemd/templates/.gitkeep diff --git a/roles/systemd_network/templates/systemd_network_unit.j2 b/roles/systemd/templates/network_unit.j2 similarity index 100% rename from roles/systemd_network/templates/systemd_network_unit.j2 rename to roles/systemd/templates/network_unit.j2 diff --git a/roles/systemd_network/vars/.gitkeep b/roles/systemd/vars/.gitkeep similarity index 100% rename from roles/systemd_network/vars/.gitkeep rename to roles/systemd/vars/.gitkeep diff --git a/roles/systemd_network/defaults/main.yml b/roles/systemd_network/defaults/main.yml deleted file mode 100644 index cad6168..0000000 --- a/roles/systemd_network/defaults/main.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -linux_manage_systemd_network: false -# Ensures system manager is systemd - ansible_service_mgr == "systemd" -linux_systemd_network_ensure_service_manager: true - -linux_systemd_network_apply_changes: false -linux_systemd_network_responsible_services: - - systemd - - systemd-networkd - -linux_systemd_network_backup_units: true -linux_systemd_network_cleanup_units: false -linux_systemd_network_cleanup_patterns_use_regex: true - -# Consult: https://manpages.debian.org/bookworm/systemd/systemd.net-naming-scheme.7.en.html -linux_systemd_network_naming_scheme: "v252" -linux_systemd_network_naming_scheme_apply_kernel: false - -linux_systemd_network_unit_dir: /etc/systemd/network -linux_systemd_network_unit_template: systemd_network_unit.j2 - -linux_systemd_network_units_default: [] -linux_systemd_network_units_group: [] -linux_systemd_network_units_host: [] -linux_systemd_network_units_all: "{{ (linux_systemd_network_units_host + linux_systemd_network_units_group + linux_systemd_network_units_default) | - selectattr('name', 'defined') | selectattr('name', 'search', '\\.(network|link|netdev)$') | - selectattr('config', 'defined') | unique(attribute='name') }}" - -__linux_systemd_network_unit_names: "{{ linux_systemd_network_units_all | map(attribute='name') }}" -__linux_systemd_network_unit_regex: - - "^({{ __linux_systemd_network_unit_names | select('match', '.*\\.link$') | map('replace', '.link', '') | join('|') }})\\.link$" - - "^({{ __linux_systemd_network_unit_names | select('match', '.*\\.netdev$') | map('replace', '.netdev', '') | join('|') }})\\.netdev$" - - "^({{ __linux_systemd_network_unit_names | select('match', '.*\\.network$') | map('replace', '.network', '') | join('|') }})\\.network$" -# Escape backup files: - - "^.*\\.\\d+\\.\\d{4}-\\d{2}-\\d{2}@\\d{2}:\\d{2}:\\d{2}~$" -__linux_systemd_network_cleanup_pattern: "(?!{{ __linux_systemd_network_unit_regex | join('|') }})" - -linux_systemd_network_cleanup_patterns: ["(?!{{ __linux_systemd_network_unit_regex | join('|') }})"] diff --git a/roles/systemd_network/tasks/main.yml b/roles/systemd_network/tasks/main.yml deleted file mode 100644 index d512330..0000000 --- a/roles/systemd_network/tasks/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: Import systemd network tasks - ansible.builtin.import_tasks: - file: systemd_network.yml - when: - - linux_manage_systemd_network | bool - - not linux_systemd_network_ensure_service_manager | bool or ansible_service_mgr == "systemd"