Compare commits
	
		
			3 Commits
		
	
	
		
			main
			...
			transcaffe
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						df6d138df1
	
				 | 
					
					
						|||
| 
						
						
							
						
						17dc8025e8
	
				 | 
					
					
						|||
| 
						
						
							
						
						2342d6ee96
	
				 | 
					
					
						
							
								
								
									
										7
									
								
								playbooks/unifi_controller.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								playbooks/unifi_controller.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: Deploy unifi controller
 | 
				
			||||||
 | 
					  hosts: "{{ unifi_controller_hosts | default('unifi_controller') }}"
 | 
				
			||||||
 | 
					  become: "{{ unifi_controller_become | default(false) }}"
 | 
				
			||||||
 | 
					  gather_facts: "{{ unifi_controller_gather_facts | default(false) }}"
 | 
				
			||||||
 | 
					  roles:
 | 
				
			||||||
 | 
					    - role: finallycoffee.services.unifi_controller
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
ghost_domain: ~
 | 
					ghost_domain: ~
 | 
				
			||||||
ghost_version: "6.0.5"
 | 
					ghost_version: "6.0.7"
 | 
				
			||||||
ghost_user: ghost
 | 
					ghost_user: ghost
 | 
				
			||||||
ghost_user_group: ghost
 | 
					ghost_user_group: ghost
 | 
				
			||||||
ghost_base_path: /opt/ghost
 | 
					ghost_base_path: /opt/ghost
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
keycloak_version: "26.3.3"
 | 
					keycloak_version: "26.3.4"
 | 
				
			||||||
keycloak_container_name: keycloak
 | 
					keycloak_container_name: keycloak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
keycloak_container_image_upstream_registry: quay.io
 | 
					keycloak_container_image_upstream_registry: quay.io
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								roles/unifi_controller/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								roles/unifi_controller/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# `finallycoffee.services.unifi_controller` ansible role
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Deploy [`jacobalberty/unifi-docker`](https://github.com/jacobalberty/unifi-docker)
 | 
				
			||||||
 | 
					using either `docker` or `podman` (configure using
 | 
				
			||||||
 | 
					`unifi_controller_deployment_method`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Change the default bind IP of `::` by setting
 | 
				
			||||||
 | 
					`unifi_controller_bind_ip`. By default, the ports
 | 
				
			||||||
 | 
					`1900/udp` (SSDP), `3478/udp` (STUN), `10001/udp`,
 | 
				
			||||||
 | 
					`8080/tcp` (HTTP), `8443/tcp` (HTTPS) and `6789/tcp`
 | 
				
			||||||
 | 
					are exposed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For more information on which ports are needed when, see
 | 
				
			||||||
 | 
					[Unifi's required ports reference](https://help.ui.com/hc/en-us/articles/218506997-Required-Ports-Reference).
 | 
				
			||||||
							
								
								
									
										41
									
								
								roles/unifi_controller/defaults/main/container.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								roles/unifi_controller/defaults/main/container.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					unifi_controller_container_name: "unifi-controller"
 | 
				
			||||||
 | 
					unifi_controller_container_image_registry: "docker.io"
 | 
				
			||||||
 | 
					unifi_controller_container_image_namespace: "jacobalberty"
 | 
				
			||||||
 | 
					unifi_controller_container_image_repository: "unifi"
 | 
				
			||||||
 | 
					unifi_controller_container_image_tag: ~
 | 
				
			||||||
 | 
					unifi_controller_container_image_name: >-2
 | 
				
			||||||
 | 
					  {{ [
 | 
				
			||||||
 | 
					    unifi_controller_container_image_registry | default([]),
 | 
				
			||||||
 | 
					    unifi_controller_container_image_namespace | default([]),
 | 
				
			||||||
 | 
					    unifi_controller_container_image_repository
 | 
				
			||||||
 | 
					  ] | flatten | join('/') }}
 | 
				
			||||||
 | 
					unifi_controller_container_image: >-2
 | 
				
			||||||
 | 
					  {{ [
 | 
				
			||||||
 | 
					    unifi_controller_container_image_name,
 | 
				
			||||||
 | 
					    unifi_controller_container_image_tag | default('v' + unifi_controller_version, true)
 | 
				
			||||||
 | 
					  ] | join(':') }}
 | 
				
			||||||
 | 
					unifi_controller_container_image_source: "pull"
 | 
				
			||||||
 | 
					unifi_controller_container_image_force_source: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_container_image_tag | default(false, true) | bool }}
 | 
				
			||||||
 | 
					unifi_controller_container_image_pull: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_container_image_source == 'pull' }}
 | 
				
			||||||
 | 
					unifi_controller_container_image_force_pull: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_container_image_pull and unifi_controller_container_image_force_source }}
 | 
				
			||||||
 | 
					unifi_controller_container_ports:
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_bind_ip }}:8080:8080/tcp" # HTTP: device + app communication
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_bind_ip }}:8443:8443/tcp" # HTTPS: app web page + API
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_bind_ip }}:1900:1900/udp" # SSDP: layer 2 discovery
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_bind_ip }}:3478:3478/udp" # STUN: device adoption and communication
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_bind_ip }}:10001:10001/udp" # device discovery (during adoption)
 | 
				
			||||||
 | 
					unifi_controller_container_user: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_run_uid }}:{{ unifi_controller_run_gid }}
 | 
				
			||||||
 | 
					unifi_controller_container_restart_policy: "on-failure"
 | 
				
			||||||
 | 
					unifi_controller_container_default_volumes:
 | 
				
			||||||
 | 
					  - "{{ unifi_controller_base_path }}:/unifi:rw"
 | 
				
			||||||
 | 
					unifi_controller_container_volumes: []
 | 
				
			||||||
 | 
					unifi_controller_container_merged_volumes: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_container_default_volumes | default([])
 | 
				
			||||||
 | 
					  + unifi_controller_container_volumes | default([]) }}
 | 
				
			||||||
 | 
					unifi_controller_container_state: >-2
 | 
				
			||||||
 | 
					  {{ (unifi_controller_state == 'present') | ternary('started', 'absent') }}
 | 
				
			||||||
							
								
								
									
										9
									
								
								roles/unifi_controller/defaults/main/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/unifi_controller/defaults/main/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					unifi_controller_version: "9.4.19"
 | 
				
			||||||
 | 
					unifi_controller_base_path: "/var/lib/unifi-controller"
 | 
				
			||||||
 | 
					unifi_controller_log_path: "{{ unifi_controller_base_path }}/log"
 | 
				
			||||||
 | 
					unifi_controller_data_path: "{{ unifi_controller_base_path }}/data"
 | 
				
			||||||
 | 
					unifi_controller_bind_ip: "::"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unifi_controller_state: "present"
 | 
				
			||||||
 | 
					unifi_controller_deployment_method: "docker"
 | 
				
			||||||
							
								
								
									
										8
									
								
								roles/unifi_controller/defaults/main/user.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/unifi_controller/defaults/main/user.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					unifi_controller_user: unifi
 | 
				
			||||||
 | 
					unifi_controller_user_create_home: false
 | 
				
			||||||
 | 
					unifi_controller_user_system: true
 | 
				
			||||||
 | 
					unifi_controller_run_uid: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_user_info.uid | default(unifi_controller_user) }}
 | 
				
			||||||
 | 
					unifi_controller_run_gid: >-2
 | 
				
			||||||
 | 
					  {{ unifi_controller_user_info.group | default(unifi_controller_user) }}
 | 
				
			||||||
							
								
								
									
										11
									
								
								roles/unifi_controller/meta/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/unifi_controller/meta/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					allow_duplicates: true
 | 
				
			||||||
 | 
					dependencies: []
 | 
				
			||||||
 | 
					galaxy_info:
 | 
				
			||||||
 | 
					  role_name: unifi_controller
 | 
				
			||||||
 | 
					  description: Ansible role to deploy unifi (network) controller in a container
 | 
				
			||||||
 | 
					  galaxy_tags:
 | 
				
			||||||
 | 
					    - unifi
 | 
				
			||||||
 | 
					    - unifi_controller
 | 
				
			||||||
 | 
					    - docker
 | 
				
			||||||
 | 
					    - podman
 | 
				
			||||||
							
								
								
									
										17
									
								
								roles/unifi_controller/tasks/deploy-docker.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/unifi_controller/tasks/deploy-docker.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: Ensure container image '{{ unifi_controller_container_image }}' is {{ unifi_controller_state }}
 | 
				
			||||||
 | 
					  community.docker.docker_image:
 | 
				
			||||||
 | 
					    name: "{{ unifi_controller_container_image }}"
 | 
				
			||||||
 | 
					    state: "{{ unifi_controller_state }}"
 | 
				
			||||||
 | 
					    source: "{{ unifi_controller_container_image_source }}"
 | 
				
			||||||
 | 
					    force_source: "{{ unifi_controller_container_image_force_source }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Ensure container '{{ unifi_controller_container_name }}' is {{ unifi_controller_container_state }}
 | 
				
			||||||
 | 
					  community.docker.docker_container:
 | 
				
			||||||
 | 
					    name: "{{ unifi_controller_container_name }}"
 | 
				
			||||||
 | 
					    image: "{{ unifi_controller_container_image }}"
 | 
				
			||||||
 | 
					    user: "{{ unifi_controller_container_user }}"
 | 
				
			||||||
 | 
					    ports: "{{ unifi_controller_container_ports }}"
 | 
				
			||||||
 | 
					    volumes: "{{ unifi_controller_container_merged_volumes }}"
 | 
				
			||||||
 | 
					    restart_policy: "{{ unifi_controller_container_restart_policy }}"
 | 
				
			||||||
 | 
					    state: "{{ unifi_controller_container_state }}"
 | 
				
			||||||
							
								
								
									
										17
									
								
								roles/unifi_controller/tasks/deploy-podman.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/unifi_controller/tasks/deploy-podman.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: Ensure container image '{{ unifi_controller_container_image }}' is {{ unifi_controller_state }}
 | 
				
			||||||
 | 
					  containers.podman.podman_image:
 | 
				
			||||||
 | 
					    name: "{{ unifi_controller_container_image }}"
 | 
				
			||||||
 | 
					    state: "{{ unifi_controller_state }}"
 | 
				
			||||||
 | 
					    pull: "{{ unifi_controller_container_image_pull }}"
 | 
				
			||||||
 | 
					    force: "{{ unifi_controller_container_image_force_pull }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Ensure container '{{ unifi_controller_container_name }}' is {{ unifi_controller_container_state }}
 | 
				
			||||||
 | 
					  containers.podman.podman_container:
 | 
				
			||||||
 | 
					    name: "{{ unifi_controller_container_name }}"
 | 
				
			||||||
 | 
					    image: "{{ unifi_controller_container_image }}"
 | 
				
			||||||
 | 
					    user: "{{ unifi_controller_container_user }}"
 | 
				
			||||||
 | 
					    ports: "{{ unifi_controller_container_ports }}"
 | 
				
			||||||
 | 
					    volumes: "{{ unifi_controller_container_merged_volumes }}"
 | 
				
			||||||
 | 
					    restart_policy: "{{ unifi_controller_container_restart_policy }}"
 | 
				
			||||||
 | 
					    state: "{{ unifi_controller_container_state }}"
 | 
				
			||||||
							
								
								
									
										18
									
								
								roles/unifi_controller/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								roles/unifi_controller/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- name: Ensure unifi controller run user '{{ unifi_controller_user }}' is {{ unifi_controller_state }}
 | 
				
			||||||
 | 
					  ansible.builtin.user:
 | 
				
			||||||
 | 
					    name: "{{ unifi_controller_user }}"
 | 
				
			||||||
 | 
					    state: "{{ unifi_controller_state }}"
 | 
				
			||||||
 | 
					  register: unifi_controller_user_info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Ensure unifi controller base path '{{ unifi_controller_base_path }}' is {{ unifi_controller_state }}
 | 
				
			||||||
 | 
					  ansible.builtin.file:
 | 
				
			||||||
 | 
					    path: "{{ unifi_controller_base_path }}"
 | 
				
			||||||
 | 
					    state: "{{ (unifi_controller_state == 'present') | ternary('directory', 'absent') }}"
 | 
				
			||||||
 | 
					    owner: "{{ unifi_controller_run_uid }}"
 | 
				
			||||||
 | 
					    group: "{{ unifi_controller_run_gid }}"
 | 
				
			||||||
 | 
					    mode: "0755"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy unifi controller with {{ unifi_controller_deployment_method }}
 | 
				
			||||||
 | 
					  ansible.builtin.include_tasks:
 | 
				
			||||||
 | 
					    file: "deploy-{{ unifi_controller_deployment_method }}.yml"
 | 
				
			||||||
							
								
								
									
										7
									
								
								roles/unifi_controller/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								roles/unifi_controller/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					unifi_controller_states:
 | 
				
			||||||
 | 
					  - "present"
 | 
				
			||||||
 | 
					  - "absent"
 | 
				
			||||||
 | 
					unifi_controller_deployment_methods:
 | 
				
			||||||
 | 
					  - "docker"
 | 
				
			||||||
 | 
					  - "podman"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user