{"id":21163454,"url":"https://github.com/punktde/ansible-proserver-system","last_synced_at":"2026-01-22T12:35:29.412Z","repository":{"id":43679507,"uuid":"272933021","full_name":"punktDe/ansible-proserver-system","owner":"punktDe","description":"Ansible role for setting up basic system settings","archived":false,"fork":false,"pushed_at":"2025-10-21T09:02:55.000Z","size":184,"stargazers_count":0,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-21T10:36:24.057Z","etag":null,"topics":["ansible","proserver"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/punktDe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-17T09:29:45.000Z","updated_at":"2025-10-21T09:03:00.000Z","dependencies_parsed_at":"2023-12-05T15:29:46.349Z","dependency_job_id":"724c5a48-4cdc-4b9c-bab4-b1ade80cfdb7","html_url":"https://github.com/punktDe/ansible-proserver-system","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/punktDe/ansible-proserver-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/punktDe%2Fansible-proserver-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/punktDe%2Fansible-proserver-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/punktDe%2Fansible-proserver-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/punktDe%2Fansible-proserver-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/punktDe","download_url":"https://codeload.github.com/punktDe/ansible-proserver-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/punktDe%2Fansible-proserver-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28662962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","proserver"],"created_at":"2024-11-20T13:47:00.276Z","updated_at":"2026-01-22T12:35:29.406Z","avatar_url":"https://github.com/punktDe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_ANSIBLE_DOCS --\u003e\n\u003c!--\nDo not edit README.md directly!\n\nThis file is generated automatically by aar-doc and will be overwritten.\n\nPlease edit meta/argument_specs.yml instead.\n--\u003e\n# ansible-proserver-system\n\nsystem role for Proserver\n\n## Supported Operating Systems\n\n- Debian 12, 13\n- Ubuntu 24.04, 22.04\n- FreeBSD [Proserver](https://infrastructure.punkt.de/de/produkte/proserver.html)\n\n## Role Arguments\n\n\n\n#### Options for `system`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `root_group` | Root group name (automatically determined based on OS) | str | no | {{ 'root' if ansible_facts['os_family'] == 'Debian' else 'wheel' }} |\n| `sshd` | SSH daemon configuration | dict of 'sshd' options | no | {} |\n| `rsyslog` | Rsyslog configuration | dict of 'rsyslog' options | no | {} |\n| `features` | Feature flags to enable/disable various role components | dict of 'features' options | no | {} |\n| `prefix` | Path prefixes for various system components | dict of 'prefix' options | no | {} |\n| `proserver_fact` | Proserver fact configuration | dict of 'proserver_fact' options | no | {} |\n| `network` | Network configuration | dict of 'network' options | no | {} |\n| `hostname` | Hostname configuration | str | no | None |\n| `timezone` | System timezone | str | no | None |\n| `netplan` | Netplan configuration | dict | no |  |\n| `ufw` | UFW firewall configuration | dict of 'ufw' options | no | {} |\n| `sysctl` | Sysctl kernel parameters | dict | no |  |\n| `hosts` | /etc/hosts entries | dict | no |  |\n| `environment` | System-wide environment variables | dict | no |  |\n| `apt` | APT package management configuration | dict of 'apt' options | no | {} |\n| `unattended_upgrades` | Unattended upgrades configuration | dict of 'unattended_upgrades' options | no | {} |\n| `postfix` | Postfix mail server configuration | dict of 'postfix' options | no | {} |\n| `sudoers` | Sudoers configuration files | dict | no |  |\n| `groups` | System groups to create | dict | no |  |\n| `users` | System users to create | dict | no |  |\n| `users_delete` | List of users to delete | list of 'str' | no | [] |\n| `motd` | Message of the day configuration | dict of 'motd' options | no | {} |\n\n#### Options for `system.sshd`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `config` | SSH daemon configuration parameters | dict | no | {\"MaxStartups\": \"100:30:100\", \"PasswordAuthentication\": false, \"PermitRootLogin\": false} |\n\n#### Options for `system.rsyslog`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `precise_timestamps` | Enable precise timestamps in rsyslog | bool | no | False |\n\n#### Options for `system.features`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `rsyslog` | Enable rsyslog configuration | bool | no | {{ ansible_facts['system'] == 'Linux' }} |\n| `sshd` | Enable SSH daemon configuration | bool | no | {{ ansible_facts['system'] == 'Linux' }} |\n| `proserver_fact` | Enable proserver fact generation | bool | no | False |\n| `hostname` | Enable hostname configuration | bool | no | True |\n| `timezone` | Enable timezone configuration | bool | no | True |\n| `netplan` | Enable netplan configuration | bool | no | {{ ansible_facts['distribution'] == 'Ubuntu' }} |\n| `systemd_resolved` | Enable systemd-resolved configuration | bool | no | False |\n| `ufw` | Enable UFW firewall configuration | bool | no | {{ ansible_facts['distribution'] == 'Ubuntu' }} |\n| `sysctl` | Enable sysctl configuration | bool | no | {{ ansible_facts['system'] == 'Linux' }} |\n| `hosts` | Enable /etc/hosts configuration | bool | no | True |\n| `environment` | Enable system-wide environment variables | bool | no | True |\n| `apt` | Enable APT package management (Debian/Ubuntu only) | bool | no | {{ ansible_facts['os_family'] == 'Debian' }} |\n| `proserver_user` | Enable proserver user configuration | bool | no | False |\n| `postfix` | Enable Postfix mail server configuration | bool | no | False |\n| `users` | Enable user management | bool | no | True |\n| `sudoers` | Enable sudoers configuration | bool | no | True |\n| `authorized_keys` | Enable SSH authorized keys management | bool | no | True |\n| `authorized_keys_delete` | Enable deletion of SSH authorized keys | bool | no | False |\n| `motd` | Enable message of the day configuration | bool | no | True |\n| `unattended_upgrades` | Enable unattended upgrades configuration (Debian/Ubuntu only) | bool | no | False |\n\n#### Options for `system.prefix`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `sudoers` | Path prefix for sudoers configuration | str | no | {{ '/etc' if ansible_facts['system'] == 'Linux' else '/usr/local/etc' }} |\n\n#### Options for `system.proserver_fact`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `python` | Python interpreter path for proserver facts | str | no | {{ '/usr/bin/env python3.8' if (ansible_facts['distribution'] == 'Ubuntu' and ansible_facts['distribution_version'] == '18.04') else '/usr/bin/env python3' }} |\n\n#### Options for `system.network`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `public_interfaces` | List of public network interfaces | list of 'str' | no | [] |\n| `public_subnets` | List of public subnets | list of 'str' | no | [] |\n\n#### Options for `system.ufw`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `reset` | Reset UFW to default state | bool | no | {{ system_ufw_reset | bool }} |\n| `state` | UFW state (enabled/disabled) | str | no | None |\n| `policy` | UFW default policy | str | no | None |\n| `rules` | UFW firewall rules | dict | no |  |\n\n#### Options for `system.apt`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `proxy` | APT proxy configuration | str | no | None |\n| `packages` | APT packages to install (dict with package names as keys and boolean values) | dict | no |  |\n| `version_locks` | APT package version locks (dict with package names as keys and version constraint values) | dict | no |  |\n\n#### Options for `system.unattended_upgrades`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `config` | Unattended upgrades configuration parameters | dict of 'config' options | no |  |\n\n#### Options for `system.unattended_upgrades.config`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `feature_updates` | By default, only security updates are installed. Setting this to 'true' will install feature updates as well | bool | no | False |\n| `auto_clean` | Whether to automatically run apt-clean after the updates are installed | bool | no | True |\n| `auto_reboot` | Automatic reboot configuration | dict | no | {\"enabled\": true, \"time\": \"03:00\"} |\n| `blacklist` | A list of packages that shouldn't be automatically updated | list of '' | no | [] |\n| `schedule` | Update schedule in systemd OnCalendar format | str | no | 20:00 |\n| `mail` |  | dict of 'mail' options | no |  |\n\n#### Options for `system.unattended_upgrades.config.mail`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `enable` | Enable unattended_upgrades mail reports | bool | no | True |\n| `only_on_error` | Only send e-mails about errors | bool | no | True |\n| `to` | The email address to send the e-mails to | str | no | None |\n\n#### Options for `system.postfix`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `prefix` | Postfix configuration path prefix | dict of 'prefix' options | no | {} |\n| `hash_maps` | Postfix hash maps | dict | no |  |\n| `main.cf` | Postfix main.cf configuration | dict | no |  |\n\n#### Options for `system.postfix.prefix`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `config` | Postfix configuration directory path | str | no | `{{ '/etc/postfix' if ansible_facts['system'] == 'Linux' else '/usr/local/etc/postfix' }}` |\n\n#### Options for `system.motd`\n\n|Option|Description|Type|Required|Default|\n|---|---|---|---|---|\n| `project` | Project name for MOTD | str | no | None |\n| `banner_string` | Banner string for MOTD | str | no | punkt.de Proserver ASCII art |\n| `details` | Additional details for MOTD | str | no | List of dehydrated domains and system hostnames |\n\n## Dependencies\nNone.\n\n## Installation\nAdd this role to the requirements.yml of your playbook as follows:\n```yaml\nroles:\n  - name: ansible-proserver-system\n    src: https://github.com/punktDe/ansible-proserver-system\n```\n\nAfterwards, install the role by running `ansible-galaxy install -r requirements.yml`\n\n## Example Playbook\n\n```yaml\n- hosts: all\n  roles:\n    - name: system\n```\n\n\u003c!-- END_ANSIBLE_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpunktde%2Fansible-proserver-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpunktde%2Fansible-proserver-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpunktde%2Fansible-proserver-system/lists"}