diff --git a/files/unifi.service b/files/unifi.service new file mode 100644 index 0000000..5da321c --- /dev/null +++ b/files/unifi.service @@ -0,0 +1,23 @@ +[Unit] +Description=Unifi server +Requires=docker.service +After=docker.service + +DefaultDependencies=no + +[Service] +Type=simple +Environment="HOME=/root" +ExecStartPre=-/usr/bin/env sh -c '/usr/bin/env docker kill unifi 2>/dev/null' +ExecStartPre=-/usr/bin/env sh -c '/usr/bin/env docker rm unifi 2>/dev/null' + +ExecStart=/usr/bin/env docker run --rm --name unifi --log-driver=none -p 3478:3478/udp -p 8080:8080 -p 8443:8443 -p 6789:6789 -p 8843:8843 -p 8880:8880 -v unifi:/var/lib/unifi -v unifilog:/unifi -v unifirun:/var/run/unifi jacobalberty/unifi:stable-6 + +ExecStop=-/usr/bin/env sh -c '/usr/bin/env docker kill unifi 2>/dev/null' +ExecStop=-/usr/bin/env sh -c '/usr/bin/env docker rm unifi 2>/dev/null' +Restart=always +RestartSec=30 +SyslogIdentifier=unifi + +[Install] +WantedBy=multi-user.target diff --git a/group_vars/unifi b/group_vars/unifi new file mode 100644 index 0000000..96dbd82 --- /dev/null +++ b/group_vars/unifi @@ -0,0 +1,4 @@ +unifi_hostname: unifi +unifi_version: jacobalberty/unifi:stable-6 +unifi_selinux: no +unifi_bareos: no diff --git a/install.yml b/install.yml new file mode 100755 index 0000000..6b49b8d --- /dev/null +++ b/install.yml @@ -0,0 +1,11 @@ +--- +- name: "Set up a Unifi Server" + hosts: "unifi" + become: true + tasks: + - include: tasks/hostname.yml + - include: tasks/update.yml + - include: tasks/packete.yml + - include: tasks/firewall.yml + - include: tasks/docker.yml + - include: tasks/starten.yml diff --git a/tasks/docker.yml b/tasks/docker.yml new file mode 100644 index 0000000..00eb7bb --- /dev/null +++ b/tasks/docker.yml @@ -0,0 +1,12 @@ +- name: Ensure Unifi Docker image is pulled + docker_image: + name: "{{ unifi_version }}" + source: 'pull' + +- name: Ensure Unifi systemd is installed + copy: + src: files/unifi.service + dest: /etc/systemd/system/unifi.service + mode: 0644 + owner: root + group: root diff --git a/tasks/firewall.yml b/tasks/firewall.yml new file mode 100644 index 0000000..8b81ac9 --- /dev/null +++ b/tasks/firewall.yml @@ -0,0 +1,2 @@ +- name: open bareos port + firewalld: port=9102/tcp zone=public permanent=true state=enabled immediate=yes diff --git a/tasks/hostname.yml b/tasks/hostname.yml new file mode 100644 index 0000000..42c3324 --- /dev/null +++ b/tasks/hostname.yml @@ -0,0 +1,3 @@ +- name: Set a hostname + ansible.builtin.hostname: + name: "{{ unifi_hostname }}" diff --git a/tasks/packete.yml b/tasks/packete.yml new file mode 100644 index 0000000..be234e7 --- /dev/null +++ b/tasks/packete.yml @@ -0,0 +1,18 @@ +- name: Chrony installieren + dnf: name=chrony update_cache=no state=latest + +- name: repository holen + shell: + "dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo" + +- name: repository holen docker + shell: + "dnf install -y docker-ce --nobest" + +- name: PIP3 installieren + dnf: name=python3-pip update_cache=no state=latest + +- name: docker-python + shell: + "pip3 install docker" + diff --git a/tasks/starten.yml b/tasks/starten.yml new file mode 100644 index 0000000..ba5e588 --- /dev/null +++ b/tasks/starten.yml @@ -0,0 +1,3 @@ +- name: Dienste starten + shell: + "systemctl start docker; systemctl enable docker; systemctl daemon-reload; systemctl start unifi" diff --git a/tasks/update.yml b/tasks/update.yml new file mode 100644 index 0000000..705c44c --- /dev/null +++ b/tasks/update.yml @@ -0,0 +1,4 @@ +- name: Upgrade all packages + yum: + name: '*' + state: latest