From 1dfdd4acc6661706493d0ce1b6f58b1087112299 Mon Sep 17 00:00:00 2001 From: Rene Mewissen Date: Tue, 21 Oct 2025 14:21:47 +0200 Subject: [PATCH] Installation eines Omada-Controllers --- hosts | 3 ++ local.yml | 6 +++ roles/omada-controller/README.md | 58 ++++++++++++++++++++++++ roles/omada-controller/defaults/main.yml | 11 +++++ roles/omada-controller/handlers/main.yml | 8 ++++ roles/omada-controller/meta/main.yml | 25 ++++++++++ roles/omada-controller/tasks/main.yml | 44 ++++++++++++++++++ roles/omada-controller/tests/inventory | 3 ++ roles/omada-controller/vars/main.yml | 3 ++ 9 files changed, 161 insertions(+) create mode 100644 roles/omada-controller/README.md create mode 100644 roles/omada-controller/defaults/main.yml create mode 100644 roles/omada-controller/handlers/main.yml create mode 100644 roles/omada-controller/meta/main.yml create mode 100644 roles/omada-controller/tasks/main.yml create mode 100644 roles/omada-controller/tests/inventory create mode 100644 roles/omada-controller/vars/main.yml diff --git a/hosts b/hosts index 389854d..7d0c344 100644 --- a/hosts +++ b/hosts @@ -133,6 +133,9 @@ ns1.universe.local unbound01.universe.local unbound02.universe.local +[omada_controller] +omada.universe.local + [photo_editing] endor.universe.local endorvm.universe.local diff --git a/local.yml b/local.yml index 263c27f..98c0b6d 100644 --- a/local.yml +++ b/local.yml @@ -152,6 +152,12 @@ roles: - jitsimeet +- hosts: omada_controller + tags: server,omada_controller + become: true + roles: + - omada-controller + - hosts: backup tags: server,backup become: true diff --git a/roles/omada-controller/README.md b/roles/omada-controller/README.md new file mode 100644 index 0000000..29bad43 --- /dev/null +++ b/roles/omada-controller/README.md @@ -0,0 +1,58 @@ +# Ansible Role: omada-controller + +Diese Rolle installiert den TP-Link Omada SDN Controller auf Debian-basierten Systemen (Debian, Ubuntu). + +Sie kümmert sich um die Installation der notwendigen Abhängigkeiten (Java, jsvc, curl) und lädt das offizielle `.deb`-Paket von der TP-Link-Website herunter und installiert es. Der Controller-Dienst (`tpeap`) wird anschließend gestartet und für den Systemstart aktiviert. + +## Anforderungen + +Diese Rolle wurde für die folgenden Betriebssysteme entwickelt und getestet: +- Debian 10 (Buster) +- Debian 11 (Bullseye) +- Ubuntu 20.04 (Focal) +- Ubuntu 22.04 (Jammy) + +Es sind keine weiteren externen Abhängigkeiten oder spezielle Python-Bibliotheken erforderlich. + +## Rollenvariablen + +Die folgenden Variablen können angepasst werden, um das Verhalten der Rolle zu steuern. Die Standardwerte sind in `defaults/main.yml` definiert. + +| Variable | Standardwert | Beschreibung | +|---|---|---| +| `omada_controller_deb_url` | `https://static.tp-link.com/.../Omada_SDN_Controller_v5.9.31_Linux_x64.deb` | Die direkte Download-URL für das `.deb`-Installationspaket des Omada Controllers. Die neueste Version finden Sie auf der TP-Link Download-Seite. | +| `omada_controller_java_package` | `openjdk-8-jre-headless` | Das zu installierende Java-Paket. Version 8 ist eine sichere Wahl, neuere Controller-Versionen unterstützen eventuell auch Java 11 oder 17. | + +## Abhängigkeiten + +Diese Rolle hat keine Abhängigkeiten von anderen Ansible-Rollen. + +## Beispiel-Playbook + +So können Sie die Rolle in Ihr Playbook integrieren: + +```yaml +- hosts: omada_controller_server + become: true + roles: + - omada-controller +``` + +Um eine spezifische Version des Controllers zu installieren, können Sie die URL im Playbook oder in Ihren `group_vars` überschreiben: + +```yaml +- hosts: omada_controller_server + become: true + vars: + omada_controller_deb_url: "https://static.tp-link.com/path/to/specific/version.deb" + roles: + - omada-controller +``` + +## Lizenz + +MIT + +## Autor + +Hier können Sie Ihre Informationen eintragen. diff --git a/roles/omada-controller/defaults/main.yml b/roles/omada-controller/defaults/main.yml new file mode 100644 index 0000000..a913c87 --- /dev/null +++ b/roles/omada-controller/defaults/main.yml @@ -0,0 +1,11 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for roles/omada-controller +# roles/omada-controller/defaults/main.yml +# URL für die .deb-Datei des Omada SDN Controllers. +# Sie können die neueste Version auf der TP-Link-Website finden: +# https://www.tp-link.com/de/support/download/omada-software-controller/ +omada_controller_deb_url: "https://static.tp-link.com/upload/software/2023/202303/20230321/Omada_SDN_Controller_v5.9.31_Linux_x64.deb" + +# Java-Version, die als Abhängigkeit installiert werden soll. Java 8 ist die sicherste Wahl. +omada_controller_java_package: "openjdk-8-jre-headless" diff --git a/roles/omada-controller/handlers/main.yml b/roles/omada-controller/handlers/main.yml new file mode 100644 index 0000000..e7ea29b --- /dev/null +++ b/roles/omada-controller/handlers/main.yml @@ -0,0 +1,8 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for roles/omada-controller +# roles/omada-controller/handlers/main.yml +- name: Restart Omada Controller + service: + name: tpeap + state: restarted diff --git a/roles/omada-controller/meta/main.yml b/roles/omada-controller/meta/main.yml new file mode 100644 index 0000000..4cf36ca --- /dev/null +++ b/roles/omada-controller/meta/main.yml @@ -0,0 +1,25 @@ +#SPDX-License-Identifier: MIT-0 +# roles/omada-controller/meta/main.yml +galaxy_info: + author: your name + description: Installs the TP-Link Omada SDN Controller on Debian-based systems. + company: your company (optional) + license: license (GPL-2.0-or-later, MIT, etc.) + min_ansible_version: 2.9 + platforms: + - name: Debian + versions: + - buster + - bullseye + - name: Ubuntu + versions: + - bionic + - focal + - jammy + galaxy_tags: + - networking + - omada + - tplink + - controller + +dependencies: [] diff --git a/roles/omada-controller/tasks/main.yml b/roles/omada-controller/tasks/main.yml new file mode 100644 index 0000000..55bba3a --- /dev/null +++ b/roles/omada-controller/tasks/main.yml @@ -0,0 +1,44 @@ +#SPDX-License-Identifier: MIT-0 +--- +# tasks file for roles/omada-controller +# roles/omada-controller/tasks/main.yml +- name: Check if Omada Controller package 'tpeap' is already installed + dpkg_query: + name: tpeap + showformat: '${Status}' + register: omada_pkg_status + failed_when: false + changed_when: false + +- name: Install Omada Controller + when: "'install ok installed' not in omada_pkg_status.stdout" + block: + - name: Install dependencies for Omada Controller + # Der Controller benötigt Java, jsvc (Java Service Wrapper) und curl. + # MongoDB wird vom Controller-Paket selbst mitgebracht und muss nicht separat installiert werden. + apt: + name: + - "{{ omada_controller_java_package }}" + - jsvc + - curl + state: present + update_cache: yes + register: apt_install + retries: 3 + until: apt_install is success + + # Das .deb-Paket wird direkt von der URL installiert. + - name: Install Omada Controller from URL + apt: + deb: "{{ omada_controller_deb_url }}" + state: present + register: omada_install + retries: 3 + until: omada_install is success + notify: Restart Omada Controller + +- name: Ensure Omada Controller service (tpeap) is running and enabled on boot + service: + name: tpeap + state: started + enabled: yes diff --git a/roles/omada-controller/tests/inventory b/roles/omada-controller/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/roles/omada-controller/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/roles/omada-controller/vars/main.yml b/roles/omada-controller/vars/main.yml new file mode 100644 index 0000000..008d24b --- /dev/null +++ b/roles/omada-controller/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for roles/omada-controller