Merge branch 'unifi-redux'
commit
00acc54402
|
@ -1,5 +1,6 @@
|
||||||
- import_playbook: facts.yml
|
- import_playbook: facts.yml
|
||||||
- import_playbook: hostname.yml
|
- import_playbook: hostname.yml
|
||||||
|
- import_playbook: useproxy.yml
|
||||||
- import_playbook: base.yml
|
- import_playbook: base.yml
|
||||||
- import_playbook: firewalld.yml
|
- import_playbook: firewalld.yml
|
||||||
- import_playbook: ssh-host-certs.yml
|
- import_playbook: ssh-host-certs.yml
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
unifi_server_name: '{{ ansible_fqdn }}'
|
|
@ -1,4 +1,8 @@
|
||||||
nginx_redirect_http_https: true
|
unifi_server_name: unifi.pyrocufflink.blue
|
||||||
|
unifi_caddy_acme:
|
||||||
|
email: unifi@pyrocufflink.net
|
||||||
|
url: https://ca.pyrocufflink.blue/acme/acme/directory
|
||||||
|
|
||||||
unifi_exporter_site: Pyrocufflink
|
unifi_exporter_site: Pyrocufflink
|
||||||
unifi_exporter_username: prometheus
|
unifi_exporter_username: prometheus
|
||||||
unifi_exporter_password: !vault |
|
unifi_exporter_password: !vault |
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
- import_playbook: bootstrap.yml
|
- import_playbook: bootstrap.yml
|
||||||
|
|
||||||
|
- import_playbook: users.yml
|
||||||
- import_playbook: collectd.yml
|
- import_playbook: collectd.yml
|
||||||
- import_playbook: promtail.yml
|
- import_playbook: promtail.yml
|
||||||
- import_playbook: auto-updates.yml
|
- import_playbook: auto-updates.yml
|
||||||
|
|
|
@ -87,6 +87,10 @@ squid_http_access:
|
||||||
- allow unifi_controller dockerhub
|
- allow unifi_controller dockerhub
|
||||||
- allow unifi_controller ghcr
|
- allow unifi_controller ghcr
|
||||||
- allow unifi_controller linuxserverio
|
- allow unifi_controller linuxserverio
|
||||||
|
- allow unifi_controller gitea
|
||||||
|
- allow unifi_controller fedora_repo
|
||||||
|
- allow unifi_controller dch_repo
|
||||||
|
- allow unifi_controller grafana_rpm
|
||||||
- allow trusted frigate github_api
|
- allow trusted frigate github_api
|
||||||
- deny all
|
- deny all
|
||||||
|
|
||||||
|
|
8
hosts
8
hosts
|
@ -136,6 +136,9 @@ kubelet
|
||||||
[needproxy]
|
[needproxy]
|
||||||
nvr2.pyrocufflink.blue
|
nvr2.pyrocufflink.blue
|
||||||
|
|
||||||
|
[needproxy:children]
|
||||||
|
unifi
|
||||||
|
|
||||||
[networkd]
|
[networkd]
|
||||||
vmhost0.pyrocufflink.blue
|
vmhost0.pyrocufflink.blue
|
||||||
vmhost1.pyrocufflink.blue
|
vmhost1.pyrocufflink.blue
|
||||||
|
@ -227,6 +230,11 @@ vps
|
||||||
|
|
||||||
[unifi]
|
[unifi]
|
||||||
|
|
||||||
|
[unifi-test]
|
||||||
|
|
||||||
|
[unifi:children]
|
||||||
|
unifi-test
|
||||||
|
|
||||||
[vm-hosts]
|
[vm-hosts]
|
||||||
vmhost0.pyrocufflink.blue
|
vmhost0.pyrocufflink.blue
|
||||||
vmhost1.pyrocufflink.blue
|
vmhost1.pyrocufflink.blue
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
unifi_version: latest
|
unifi_version: latest
|
||||||
unifi_container_image: lscr.io/linuxserver/unifi-controller
|
unifi_container_image: git.pyrocufflink.net/containerimages/unifi
|
||||||
unifi_storage_path: /var/lib/unifi
|
unifi_storage_path: /var/lib/unifi
|
||||||
|
|
||||||
unifi_exporter_container_image: docker.io/jessestuart/unifi_exporter
|
unifi_exporter_container_image: docker.io/jessestuart/unifi_exporter
|
||||||
|
|
|
@ -1,48 +1,3 @@
|
||||||
- name: ensure unifi group exists
|
|
||||||
group:
|
|
||||||
name: unifi
|
|
||||||
gid: 911
|
|
||||||
system: true
|
|
||||||
state: present
|
|
||||||
tags:
|
|
||||||
- user
|
|
||||||
- group
|
|
||||||
- name: ensure unifi user exists
|
|
||||||
user:
|
|
||||||
name: unifi
|
|
||||||
uid: 911
|
|
||||||
group: unifi
|
|
||||||
home: /var/lib/unifi
|
|
||||||
createhome: false
|
|
||||||
system: true
|
|
||||||
state: present
|
|
||||||
tags:
|
|
||||||
- user
|
|
||||||
|
|
||||||
- name: ensure containers subuid is configured
|
|
||||||
lineinfile:
|
|
||||||
path: /etc/subuid
|
|
||||||
create: true
|
|
||||||
line: containers:39290640:1048576
|
|
||||||
tags:
|
|
||||||
- user
|
|
||||||
- name: ensure containers subgid is configured
|
|
||||||
lineinfile:
|
|
||||||
path: /etc/subgid
|
|
||||||
line: containers:39290640:1048576
|
|
||||||
tags:
|
|
||||||
- user
|
|
||||||
|
|
||||||
- name: ensure unifi storage path exists
|
|
||||||
file:
|
|
||||||
path: '{{ unifi_storage_path }}'
|
|
||||||
owner: unifi
|
|
||||||
group: unifi
|
|
||||||
mode: u=rwx,go=
|
|
||||||
state: directory
|
|
||||||
tags:
|
|
||||||
- datadir
|
|
||||||
|
|
||||||
- name: ensure unifi.container systemd unit exists
|
- name: ensure unifi.container systemd unit exists
|
||||||
template:
|
template:
|
||||||
src: unifi.container.j2
|
src: unifi.container.j2
|
||||||
|
@ -75,23 +30,12 @@
|
||||||
tags:
|
tags:
|
||||||
- firewalld
|
- firewalld
|
||||||
|
|
||||||
- name: ensure nginx is configured to proxy for unifi
|
- name: ensure caddy is configured to proxy for unifi
|
||||||
template:
|
template:
|
||||||
src: unifi.nginx.conf.j2
|
src: unifi.caddyfile.j2
|
||||||
dest: /etc/nginx/default.d/unifi.conf
|
dest: /etc/caddy/Caddyfile.d/unifi.caddyfile
|
||||||
mode: u=rw,go=r
|
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
mode: u=rw,go=r
|
||||||
notify:
|
notify:
|
||||||
- reload nginx
|
- reload caddy
|
||||||
tags:
|
|
||||||
- nginx
|
|
||||||
|
|
||||||
- name: ensure selinux allows nginx to proxy for unifi
|
|
||||||
seboolean:
|
|
||||||
name: httpd_can_network_connect
|
|
||||||
persistent: true
|
|
||||||
state: true
|
|
||||||
tags:
|
|
||||||
- nginx
|
|
||||||
- selinux
|
|
||||||
|
|
|
@ -3,8 +3,5 @@
|
||||||
tags:
|
tags:
|
||||||
- install
|
- install
|
||||||
- import_tasks: deploy.yml
|
- import_tasks: deploy.yml
|
||||||
- import_tasks: exporter.yml
|
|
||||||
tags:
|
|
||||||
- unifi-exporter
|
|
||||||
tags:
|
tags:
|
||||||
- unifi
|
- unifi
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{{ unifi_server_name }} {
|
||||||
|
reverse_proxy localhost:8443 {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{% if unifi_caddy_acme|d %}
|
||||||
|
|
||||||
|
tls {{ unifi_caddy_acme.email }} {
|
||||||
|
ca {{ unifi_caddy_acme.url }}
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
}
|
|
@ -5,14 +5,17 @@ After=network.target
|
||||||
|
|
||||||
[Container]
|
[Container]
|
||||||
Image={{ unifi_container_image }}:{{ unifi_version }}
|
Image={{ unifi_container_image }}:{{ unifi_version }}
|
||||||
Volume={{ unifi_storage_path }}:/config:rw,Z
|
Volume=%S/%N:/var/lib/unifi:rw,U,Z
|
||||||
|
Volume=%L/%N:/var/log/unifi:rw,U,Z
|
||||||
Network=host
|
Network=host
|
||||||
NoNewPrivileges=yes
|
NoNewPrivileges=yes
|
||||||
UserNS=auto:gidmapping=911:911:1,uidmapping=911:911:1
|
ReadOnly=yes
|
||||||
VolatileTmp=yes
|
ReadOnlyTmpfs=true
|
||||||
Notify=yes
|
Notify=yes
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
StateDirectory=%N
|
||||||
|
LogsDirectory=%N
|
||||||
TimeoutStartSec=5min
|
TimeoutStartSec=5min
|
||||||
Restart=always
|
Restart=always
|
||||||
PrivateTmp=yes
|
PrivateTmp=yes
|
||||||
|
@ -23,7 +26,7 @@ ProtectProc=invisible
|
||||||
ProtectSystem=strict
|
ProtectSystem=strict
|
||||||
ReadWritePaths=/run
|
ReadWritePaths=/run
|
||||||
ReadWritePaths=/var/lib/containers/storage
|
ReadWritePaths=/var/lib/containers/storage
|
||||||
ReadWritePaths={{ unifi_storage_path }}
|
ReadWritePaths=%S/%N
|
||||||
RestrictRealtime=yes
|
RestrictRealtime=yes
|
||||||
UMask=0077
|
UMask=0077
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
location / {
|
|
||||||
proxy_pass https://127.0.0.1:8443/;
|
|
||||||
proxy_ssl_verify off;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
}
|
|
1
site.yml
1
site.yml
|
@ -11,3 +11,4 @@
|
||||||
- import_playbook: postgresql.yml
|
- import_playbook: postgresql.yml
|
||||||
- import_playbook: serterm.yml
|
- import_playbook: serterm.yml
|
||||||
- import_playbook: smtp-relay.yml
|
- import_playbook: smtp-relay.yml
|
||||||
|
- import_playbook: unifi.yml
|
||||||
|
|
Loading…
Reference in New Issue