diff --git a/roles/azuracast/README.rst b/roles/azuracast/README.rst index 3e61395e7..24d1277da 100644 --- a/roles/azuracast/README.rst +++ b/roles/azuracast/README.rst @@ -22,6 +22,8 @@ As of 2022-08-31, AzuraCast should run on Ubuntu 22.04 and **64-bit** Raspberry Other Linux distributions may also work, at your own risk, especially if Docker runs smoothly. +NOTE: AzuraCast was designed to be installed *just once* on a fresh OS. So ``./runrole --reinstall azuracast`` is not supported in general. However, if you accidentally damage your AzuraCast software, IIAB has posted `technical tips <./tasks/install.yml>`_ *(use at your own risk!)* in case of emergency. + Using It -------- @@ -37,5 +39,9 @@ AzuraCast Docs - https://docs.azuracast.com - https://docs.azuracast.com/en/getting-started/installation/post-installation-steps -- https://docs.azuracast.com/en/getting-started/updates +- https://docs.azuracast.com/en/getting-started/settings +- https://docs.azuracast.com/en/getting-started/updates (can *DAMAGE* AzuraCast as of 2022-09-28) - https://docs.azuracast.com/en/user-guide/streaming-software +- https://docs.azuracast.com/en/user-guide/troubleshooting +- https://docs.azuracast.com/en/user-guide/logs +- https://docs.azuracast.com/en/administration/docker diff --git a/roles/azuracast/tasks/install.yml b/roles/azuracast/tasks/install.yml index 5f4e43ff6..8ce9474d2 100644 --- a/roles/azuracast/tasks/install.yml +++ b/roles/azuracast/tasks/install.yml @@ -1,3 +1,30 @@ +# 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 }} file: path: "{{ azuracast_host_dir }}" @@ -7,17 +34,11 @@ template: src: prod.env.j2 dest: "{{ azuracast_host_dir }}/.env" - #owner: root - #group: root - mode: 0644 -#- 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" - #owner: root - #group: root -# mode: 0644 +- 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 }} get_url: @@ -26,13 +47,6 @@ mode: 0755 timeout: "{{ download_timeout }}" -- 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" - mode: 0755 - timeout: "{{ download_timeout }}" - #- name: AzuraCast - Make changes to docker.sh script so it runs headless # lineinfile: # path: "{{ azuracast_host_dir }}/docker.sh" @@ -40,20 +54,26 @@ # line: "\\1reply='Y'" # backrefs: yes +# 2022-09-28: https://docs.azuracast.com/en/getting-started/installation/docker +# (& 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 }}" + +#- 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" + #- 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 - Install {{ azuracast_host_dir }}/azuracast.env for altered ports - template: - src: azuracast.env - dest: "{{ azuracast_host_dir }}/" - #owner: root - #group: root - mode: 0644 - - name: AzuraCast - Make directory {{ docker_container_dir }} file: path: "{{ docker_container_dir }}" @@ -65,10 +85,14 @@ path: /var/lib/docker state: link -- name: AzuraCast - Setup for stable channel install - shell: "yes 'Y' | /bin/bash docker.sh setup-release" - args: - chdir: "{{ azuracast_host_dir }}" +# 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 }}" - name: AzuraCast - Run the installer shell: "yes '' | /bin/bash docker.sh install" diff --git a/roles/azuracast/templates/azuracast-nginx.conf.j2 b/roles/azuracast/templates/azuracast-nginx.conf.j2.unused similarity index 100% rename from roles/azuracast/templates/azuracast-nginx.conf.j2 rename to roles/azuracast/templates/azuracast-nginx.conf.j2.unused diff --git a/roles/azuracast/templates/azuracast.env b/roles/azuracast/templates/azuracast.env.j2 similarity index 100% rename from roles/azuracast/templates/azuracast.env rename to roles/azuracast/templates/azuracast.env.j2