summaryrefslogtreecommitdiffstats
path: root/roles/stream/tasks
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-10-20 14:52:23 -0400
committerSacha Chua <sacha@sachachua.com>2022-10-20 14:52:23 -0400
commit21b051177dc5897d239e6532f5f245a32f7dfb36 (patch)
tree5a76d681a639d4aff9af291fb8564fd92dd94cef /roles/stream/tasks
parentec95e5829cdf179be145b229eb3e92178d0e92b8 (diff)
downloademacsconf-ansible-21b051177dc5897d239e6532f5f245a32f7dfb36.tar.xz
emacsconf-ansible-21b051177dc5897d239e6532f5f245a32f7dfb36.zip
Starting point for icecast config
Diffstat (limited to '')
-rw-r--r--roles/stream/tasks/main.yml52
1 files changed, 52 insertions, 0 deletions
diff --git a/roles/stream/tasks/main.yml b/roles/stream/tasks/main.yml
new file mode 100644
index 0000000..73040d6
--- /dev/null
+++ b/roles/stream/tasks/main.yml
@@ -0,0 +1,52 @@
+- name: Install Icecast
+ become: true
+ package:
+ name: icecast2
+ state: present
+- name: Set up config
+ become: true
+ template:
+ src: icecast.xml
+ dest: /etc/icecast2/icecast-emacsconf.xml
+- name: Set up init file
+ become: true
+ template:
+ src: icecast-emacsconf.init.d
+ dest: /etc/init.d/emacsconf
+ mode: 0755
+- name: Set up nginx config
+ become: true
+ template:
+ src: emacsconf.nginx.conf
+ dest: /etc/nginx/emacsconf.nginx.conf
+ mode: 0644
+- name: Enable icecast
+ become: true
+ sysvinit:
+ name: emacsconf
+ enabled: yes
+ state: started
+- name: Check if icecast is listening
+ wait_for:
+ port: "{{ icecast_port }}"
+ delay: 5
+ timeout: 10
+ msg: "Timeout waiting for {{ icecast_port }} to respond"
+ register: port_check
+ ignore_errors: yes
+- name: Try to restart icecast if not started
+ service: name=emacsconf state=started enabled=yes
+ when: port_check.failed == true
+- name: Test by streaming from a file
+ tags: test-stream-file, never
+ local_action: shell ffmpeg -loglevel 32 -i {{ icecast_test }} -cluster_size_limit 2M -cluster_time_limit 5100 -content_type video/webm -c:v libvpx -b:v 1M -crf 30 -g 125 -deadline good -threads 4 -f webm icecast://emacsconf:{{ icecast_emacsconf_password }}@live0.emacsconf.org:{{ icecast_port }}/emacsconf/{{ icecast_test_track|d("gen") }}.webm
+ when: icecast_test is defined
+- name: Test by displaying the stream in mpv
+ tags: test-stream-mpv, never
+ local_action: shell mpv http://live0.emacsconf.org:{{ icecast_port }}/emacsconf/{{ icecast_test_track|d(gen) }}.webm
+# - name: Set up restream script
+# template:
+# src: restream-yt.sh
+# dest: /home/orga/restream-yt.sh
+# owner: orga
+# mode: 0755