Ubuntu-Ansible-Setup/roles/squad-server/tasks/deploy-configs.yml
Price Hiller df62d0bbff fix: explicitly define server ids
Prior to this, server ids were set purely based on the position in the
inventory. So, if a mistake were made and a server moved up or down in
position then the associated ID would be wrong, and the wrong data would
be used against it in SquadJS's database. Furthermore, if we were to
ever change the format of how servers are in the inventory this would
cause a headache as currently server ids are calculated based on
position in the inventory. Explicitly defining them while, yes, adding
another hard coded value, avoids this headache entirely.
2023-02-03 17:52:42 -06:00

74 lines
2.2 KiB
YAML

---
- name: Update Server Configs With Defaults if Missing
ansible.utils.update_fact:
updates:
- path: "squad_servers.{{ idx }}"
value: "{{ squad_default_settings | combine(item, recursive=True) }}"
loop: "{{ squad_servers }}"
changed_when: false
loop_control:
index_var: idx
label: "{{ item.name }}"
register: squad_servers_updated
- ansible.builtin.set_fact:
squad_servers: "{{ squad_servers_updated.results[-1].squad_servers }}"
- name: Create Squad Directories
become: true
ansible.builtin.file:
state: directory
path: "{{ squad_server_configs_dir }}"
owner: "{{ squad_server_user }}"
group: "{{ squad_server_group }}"
mode: 0755
- name: Create Squad Server Configuration Directories
become: true
ansible.builtin.file:
state: directory
path: "{{ squad_server_configs_dir }}/{{ item.docker.name }}/ServerConfig"
owner: "{{ squad_server_user }}"
group: "{{ squad_server_group }}"
mode: 0755
loop: "{{ squad_servers }}"
loop_control:
label: "{{ squad_server_configs_dir }}/{{ item.docker.name }}/ServerConfig"
- name: Template In Squad Server's Docker Compose
become: true
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ squad_servers_dir }}/docker-compose.yml"
owner: "{{ squad_server_user }}"
group: "{{ squad_server_group }}"
mode: 0644
- name: Get Server Configurations
ansible.builtin.include_tasks: nested_servers_loop.yml
loop_control:
loop_var: template_file
label: "{{ template_file | basename }}"
with_fileglob:
- ../templates/server-config/*.j2
- name: Template SquadJS Into Place
become: true
ansible.builtin.template:
src: "SquadJS.{{ server.docker.name }}.json.j2"
dest: "{{ squad_server_configs_dir }}/{{ server.docker.name }}/SquadJS.json"
owner: "{{ squad_server_user }}"
group: "{{ squad_server_group }}"
mode: 0644
loop: "{{ squad_servers }}"
loop_control:
loop_var: server
label: "{{ server.docker.name }}"
- name: Open Squad Server Ports
ansible.builtin.include_tasks: nested_ports_open.yml
loop_control:
loop_var: server
label: "{{ server.name }}"
loop: "{{ squad_servers }}"