# 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 }}" state: directory - name: AzuraCast - Install {{ azuracast_host_dir }}/.env from template template: src: prod.env.j2 dest: "{{ azuracast_host_dir }}/.env" - 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: url: "{{ docker_sh_url }}" dest: "{{ azuracast_host_dir }}/" 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 - Make directory {{ docker_container_dir }} file: path: "{{ docker_container_dir }}" state: directory - name: AzuraCast - Symlink /var/lib/docker -> {{ docker_container_dir }} file: src: "{{ docker_container_dir }}" path: /var/lib/docker state: link # 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" args: chdir: "{{ azuracast_host_dir }}" # RECORD AzuraCast AS INSTALLED - name: "Set 'azuracast_installed: True'" set_fact: azuracast_installed: True - name: "Add 'azuracast_installed: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^azuracast_installed' line: 'azuracast_installed: True'