diff options
Diffstat (limited to 'roles/stream')
-rw-r--r-- | roles/stream/tasks/main.yml | 15 | ||||
-rw-r--r-- | roles/stream/templates/icecast.xml | 8 | ||||
-rwxr-xr-x | roles/stream/templates/restream.sh | 1 | ||||
-rwxr-xr-x | roles/stream/templates/screen-restream.sh | 10 |
4 files changed, 30 insertions, 4 deletions
diff --git a/roles/stream/tasks/main.yml b/roles/stream/tasks/main.yml index 941ac92..b2bbc69 100644 --- a/roles/stream/tasks/main.yml +++ b/roles/stream/tasks/main.yml @@ -1,3 +1,8 @@ +- name: Install at for scheduling commands + become: true + package: + name: at + state: present - name: Install Icecast become: true package: @@ -62,3 +67,13 @@ owner: orga mode: 0755 loop: "{{ restreaming_platforms | subelements('streams') | list }}" + no_log: True +- name: Set up restream scripts + tags: restream + template: + src: screen-restream.sh + dest: /home/orga/screen-restream-{{ item[1].name }}-{{ item[0].name }}.sh + owner: orga + mode: 0755 + loop: "{{ restreaming_platforms | subelements('streams') | list }}" + no_log: True diff --git a/roles/stream/templates/icecast.xml b/roles/stream/templates/icecast.xml index cf6ec41..37e1a0a 100644 --- a/roles/stream/templates/icecast.xml +++ b/roles/stream/templates/icecast.xml @@ -169,7 +169,7 @@ <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" /> <header name="baz" value="quux" /> </http-headers> - <on-connect>/home/icecast/bin/stream-start</on-connect> + <on-connect>/home/icecast/bin/stream-startg</on-connect> <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect> </mount> --> @@ -189,7 +189,7 @@ --> {% for track in emacsconf_tracks %} <mount type="normal"> - <mount-name>/{{ track.id }}.webm</mount-name> + <mount-name>/{{ emacsconf_id }}/{{ track.id }}.webm</mount-name> <username>{{ icecast_emacsconf_user }}</username> <password>{{ icecast_emacsconf_password }}</password> {% if icecast_save_dump %}<dump-file>/data/{{ emacsconf_id }}-{{ emacsconf_year }}-{{ track.id }}_%Y-%m-%d_%H-%M-%S.webm</dump-file>{% endif %} @@ -202,7 +202,7 @@ <on-disconnect>/usr/local/bin/{{ emacsconf_id }}-lowres-{{ track.id }}-on-disconnect</on-disconnect> </mount> <mount type="normal"> - <mount-name>/{{ track.id }}-host.webm</mount-name> + <mount-name>/{{ emacsconf_id }}/{{ track.id }}-host.webm</mount-name> <username>{{ icecast_emacsconf_user }}</username> <password>{{ icecast_emacsconf_password }}</password> <stream-name>EmacsConf {{ emacsconf_year }} - {{ track.name }} track</stream-name> @@ -213,7 +213,7 @@ <hidden>1</hidden> </mount> <mount type="normal"> - <mount-name>/{{ track.id }}-480p.webm</mount-name> + <mount-name>/{{ emacsconf_id }}/{{ track.id }}-480p.webm</mount-name> <username>{{ icecast_emacsconf_user }}</username> <password>{{ icecast_emacsconf_password }}</password> <stream-name>{{ emacsconf_name }} {{ emacsconf_year }} - {{ track.name }} track (480p)</stream-name> diff --git a/roles/stream/templates/restream.sh b/roles/stream/templates/restream.sh index e1d0a7f..81970c7 100755 --- a/roles/stream/templates/restream.sh +++ b/roles/stream/templates/restream.sh @@ -1,5 +1,6 @@ #!/bin/bash # {{ ansible_managed }} +# echo $$ > /tmp/restream-{{ item[1].key }}.pid MOUNT={{ item[0].stream_url }}/{{ item[1].key }} # rtmp://..../stream_key LOGLEVEL="${LOGLEVEL:-24}" for i in 1 2 3 4 5; do diff --git a/roles/stream/templates/screen-restream.sh b/roles/stream/templates/screen-restream.sh new file mode 100755 index 0000000..7466c48 --- /dev/null +++ b/roles/stream/templates/screen-restream.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# {{ ansible_managed }} + +SCREEN_NAME=restream-{{ item[1].name }}-{{ item[0].name }} +if screen -S $SCREEN_NAME -Q select ; then + echo "Already restreaming; screen -S $SCREEN_NAME -X quit if you need to restart" +else + screen -dmS $SCREEN_NAME /home/{{ emacsconf_user }}/restream-{{ item[1].name }}-{{ item[0].name }}e.sh + echo "Started screen; connect with screen -x $SCREEN_NAME" +fi |