feat: add capability to restart squad services

This commit is contained in:
Price Hiller 2023-01-27 17:50:01 -06:00
parent 3a94b894b6
commit be901b8dbf
4 changed files with 90 additions and 70 deletions

View File

@ -4,3 +4,6 @@ squad_server_user: asgard
squad_server_group: asgard
squad_servers_dir: "/home/{{ squad_server_user }}/Squad-Servers/"
squad_server_configs_dir: "{{ squad_servers_dir }}/configs"
squad_deploy_configs: true
squad_server_to_restart: ""
squad_restart_all: false

View File

@ -0,0 +1,74 @@
---
- 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
index_var: server_id
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 }}"

View File

@ -1,77 +1,13 @@
---
# tasks file for squad-server
- 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: Deploy Configs
ansible.builtin.include_tasks: deploy-configs.yml
when: squad_deploy_configs | bool
- 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
- name: Start Squad Server or Restart if Started
ansible.builtin.include_tasks: start-container.yml
when: server.docker.name == squad_server_to_restart or squad_restart_all | bool
loop: "{{ squad_servers }}"
loop_control:
loop_var: server
index_var: server_id
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 }}"

View File

@ -0,0 +1,7 @@
---
- name: Start Squad Server Services
community.docker.docker_compose:
project_src: "{{ squad_servers_dir }}"
services:
- "squad-{{ server.docker.name }}"
- "squadjs-{{ server.docker.name }}"