1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00
iiab/roles/azuracast/tasks/install.yml

114 lines
4.3 KiB
YAML
Raw Normal View History

# 2022-09-29: './runrole --reinstall azuracast' is NOT supported!
#
# 1. But if you must, first completely uninstall Docker + WIPE AzuraCast data:
#
# apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-scan-plugin
# rm -rf /library/docker /var/lib/docker /var/lib/containerd
#
# Per https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine
#
# 2. REBOOT to avoid later problems with 'systemctl status docker' -- if you
# don't reboot, Ansible will fail below when 'docker.sh install' fails to
# start docker.service -- likewise if you run './docker.sh install-docker'
# manually in /opt/azuracast. Either way, 'systemctl restart docker' won't
# work for ~2 minutes. (Rebooting avoids all these hassles!)
#
# 3. Just FYI the Docker install process will rebuild its 11 core directories
# in /var/lib/docker -> /library/docker: (as 'docker.sh install' begins)
#
# buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes
#
# 4. Just FYI both MySQL passwords (MYSQL_PASSWORD & MYSQL_ROOT_PASSWORD) will
# be WIPED from /opt/azuracast/azuracast.env (and new passwords
# auto-generated below, for use inside AzuraCast's Docker container).
#
# 5. Run './runrole --reinstall azuracast' in /opt/iiab/iiab
- name: AzuraCast - Make config directory {{ azuracast_host_dir }}
2022-08-29 19:28:02 +00:00
file:
2019-06-13 12:26:26 +00:00
path: "{{ azuracast_host_dir }}"
state: directory
- name: AzuraCast - Install {{ azuracast_host_dir }}/.env from template
2019-06-13 12:26:26 +00:00
template:
2022-08-30 09:54:21 +00:00
src: prod.env.j2
2019-06-13 12:26:26 +00:00
dest: "{{ azuracast_host_dir }}/.env"
2022-09-29 02:33:05 +00:00
- name: AzuraCast - Install {{ azuracast_host_dir }}/azuracast.env for altered ports
template:
src: azuracast.env.j2
dest: "{{ azuracast_host_dir }}/azuracast.env"
- name: AzuraCast - Download {{ docker_sh_url }} to {{ azuracast_host_dir }}
2019-06-13 12:26:26 +00:00
get_url:
url: "{{ docker_sh_url }}"
dest: "{{ azuracast_host_dir }}/"
mode: 0755
timeout: "{{ download_timeout }}"
2019-06-13 12:26:26 +00:00
#- name: AzuraCast - Make changes to docker.sh script so it runs headless
# lineinfile:
# path: "{{ azuracast_host_dir }}/docker.sh"
# regexp: "^(.*)read reply.*"
# line: "\\1reply='Y'"
# backrefs: yes
2022-09-29 02:33:05 +00:00
# 2022-09-28: https://docs.azuracast.com/en/getting-started/installation/docker
2022-09-29 02:33:05 +00:00
# (& testing) confirm this is done automatically by 'docker.sh install' below.
#
# - name: AzuraCast - Download AzuraCast's docker-compose.yml sample from GitHub to {{ azuracast_host_dir }}
# get_url:
# url: "{{ docker_compose_url }}"
# dest: "{{ azuracast_host_dir }}/docker-compose.yml"
# timeout: "{{ download_timeout }}"
2019-06-18 12:16:21 +00:00
#- name: AzuraCast - Install {{ azuracast_host_dir }}/docker-compose.override.yml from template
# template:
# src: docker-compose.override.yml.j2
# dest: "{{ azuracast_host_dir }}/docker-compose.override.yml"
2019-06-13 12:26:26 +00:00
2021-08-17 03:11:44 +00:00
#- name: Change default port number range 8xxx:8xxx to {{ azuracast_port_range_prefix }}xxx:{{ azuracast_port_range_prefix }}xxx icecast-stations in docker-compose.yml
# replace:
# path: "{{ azuracast_host_dir }}/docker-compose.yml"
# regexp: "^( *- \\')8([0-9]{3})\\:8([0-9]{3}\\'.*)$"
# replace: "\\g<1>{{ azuracast_port_range_prefix }}\\g<2>:{{ azuracast_port_range_prefix }}\\g<3>"
- name: AzuraCast - Make directory {{ docker_container_dir }}
2022-08-29 19:28:02 +00:00
file:
2019-06-13 12:26:26 +00:00
path: "{{ docker_container_dir }}"
state: directory
2022-08-29 19:28:02 +00:00
- name: AzuraCast - Symlink /var/lib/docker -> {{ docker_container_dir }}
2019-06-13 12:26:26 +00:00
file:
src: "{{ docker_container_dir }}"
path: /var/lib/docker
2022-08-29 19:28:02 +00:00
state: link
2019-06-13 12:26:26 +00:00
2022-09-28 23:40:25 +00:00
# 2022-09-28: "yes 'Y'" toggled whatever it found in /opt/azuracast/.env (e.g.
# AZURACAST_VERSION=stable from templates/prod.env.j2) to the opposite (e.g.
# AZURACAST_VERSION=latest). Let's not modify /opt/azuracast/.env unless nec!
#
# - name: AzuraCast - Setup for stable channel install
# shell: "yes 'Y' | /bin/bash docker.sh setup-release"
# args:
# chdir: "{{ azuracast_host_dir }}"
2021-07-19 07:36:09 +00:00
- name: AzuraCast - Run the installer
2021-07-19 07:36:09 +00:00
shell: "yes '' | /bin/bash docker.sh install"
2019-06-13 12:26:26 +00:00
args:
chdir: "{{ azuracast_host_dir }}"
2019-09-14 21:50:19 +00:00
2020-01-30 09:00:00 +00:00
# RECORD AzuraCast AS INSTALLED
- name: "Set 'azuracast_installed: True'"
set_fact:
azuracast_installed: True
- name: "Add 'azuracast_installed: True' to {{ iiab_state_file }}"
2019-09-14 21:50:19 +00:00
lineinfile:
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
2019-09-14 21:50:19 +00:00
regexp: '^azuracast_installed'
2019-10-07 17:11:21 +00:00
line: 'azuracast_installed: True'