Skip to content

Commit

Permalink
Merge pull request #3384 from holta/azuracast-revs
Browse files Browse the repository at this point in the history
AzuraCast 'stable' instead of 'latest' + Simplify install + Document './runrole --reinstall azuracast' manual workaround
  • Loading branch information
holta committed Sep 29, 2022
2 parents 57d54ce + f2b945a commit 4b2fe1e
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 30 deletions.
8 changes: 7 additions & 1 deletion roles/azuracast/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
--------

Expand All @@ -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
82 changes: 53 additions & 29 deletions roles/azuracast/tasks/install.yml
Original file line number Diff line number Diff line change
@@ -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 }}"
Expand All @@ -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:
Expand All @@ -26,34 +47,33 @@
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"
# regexp: "^(.*)read reply.*"
# 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 }}"
Expand All @@ -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"
Expand Down
File renamed without changes.

0 comments on commit 4b2fe1e

Please sign in to comment.