Fusion 2018 - tallycoms

At Fusion 2018 we ran a two camera setup for recording only. With the flight cases for room 1 and room 2 came two tallycoms whose config differed from their label and whose config was inconsistent.

Status

device	ipv4	/etc/issue	config
tallycom2-1	10.73.2.15/16	Raspbian GNU/Linux 9	partially ansibilised, please redo completely for next event
tallycom3-2	10.73.2.17/16 (should be 10.73.3.16/16)	Raspbian GNU/Linux 8	partially ansibilised, please redo completely for next event

Getting voctolight on both tallycoms to (manually) work took unnecessarily much time. It boils down to being new to the matter, wrong labels, wrong config and different behaviour after correcting the config, due to different base OS versions (https://www.raspberrypi.org/forums/viewtopic.php?t=187225).

Step for step rebuild

This section describes how to (re-)setup a tallycom from scratch, that should enable a VOC rookie with a linux laptop to go right ahead. WARNING: Due to time constraints no tallycom was actually re-flashed and the steps below are incomplete. If anything, they should be seen as a rough guide. Feel free to extend.

1. Prerequisites

Ensure that you have access to this wiki. If you haven't, you can't read this. :brain_explosion:

If DHCP doesn't work, have someone from the VOC team reserve and hand you a 10.73.100.{1..254}/16 address. Configure it manually.

IP: 10.73.100.X
SNM: 255.255.0.0
GW: 10.73.0.254
DNS: 10.73.0.254

Install ansible and git

user@laptop$ sudo {dnf,yum,apt-get} install ansible git

2. Flash latest Raspberry lite

Download + unzip the latest Raspbian lite - https://downloads.raspberrypi.org/raspbian_latest (at the time of writing April 2018)
WARNING: 350 MB - A lot in case of shitty/shared uplink…

user@laptop$ cd ~/Downloads
user@laptop$ wget http://director.downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2018-04-19/2018-04-18-raspbian-stretch-lite.zip

Unpack and write the Raspbian image to a microSD card (replace /dev/sdX with the correct device name)
More details here: https://www.raspberrypi.org/documentation/installation/installing-images/linux.md

user@laptop$ cd ~/Downloads
user@laptop$ unzip -p 2018-04-18-raspbian-stretch-lite.zip | sudo dd of=/dev/sdX bs=4M conv=fsync

3. Setup ansible + VOC cm repo

Install ansible and git

user@laptop$ sudo {dnf,yum,apt-get} install ansible git

Clone the VOC cm repo

user@laptop$ mkdir -p ~/Documents/voc/
user@laptop$ cd ~/Documents/voc/
user@laptop$ git clone https://github.com/voc/cm.git
OR
user@laptop$ git clone git@mng.ber.c3voc.de:cm

4. Run ansible

Get acquainted with the VOC Ansible repo structure

Checkout the feature/tally-pis branch (for now)

user@laptop$ cd ~/Documents/voc/cm/
user@laptop$ git checkout feature/tally-pis

Check if the event inventory file contains correct mapping of tallycom IP to the variables that end up in the voctolight config

user@laptop$ egrep '(tally|cam)' ~/Documents/voc/cm/ansible/event
[tally-pis]
10.73.1.15 cam=cam2 encoder=encoder1.lan.c3voc.de
10.73.1.16 cam=cam3 encoder=encoder1.lan.c3voc.de
10.73.2.15 cam=cam2 encoder=encoder2.lan.c3voc.de
10.73.2.16 cam=cam3 encoder=encoder2.lan.c3voc.de
10.73.3.16 cam=cam3 encoder=encoder3.lan.c3voc.de
10.73.4.15 cam=cam2 encoder=encoder4.lan.c3voc.de
10.73.4.16 cam=cam3 encoder=encoder4.lan.c3voc.de
#10.73.3.15 cam=cam1 encoder=encoder3.lan.c3voc.de

Check/extend the roles to be applied to the tallycoms

user@laptop$ cat ~/Documents/voc/cm/ansible/tally-pis.yml
---
- hosts: tally-pis
roles:
- { role: common, tags: ['common'] }
- { role: tally, tags: ['tally'] }

Run on multiple tallycoms - WARNING: placeholder only

user@laptop$ cd ~/Documents/voc/cm/
user@laptop$ ./ansible-playbook-keepass -u voc –ask-pass –become –become-method=sudo –ask-become-pass \
--inventory-file event \
--tree tally \
-l 10.73.1.15,10.73.1.16,10.73.2.15,10.73.2.16,10.73.3.16,10.73.4.15,10.73.4.16 \
-t tally \
tally-pis.yml

Conclusion

The tallycoms were in an undefined state. They should either be checked prior to sending them out to the next event or a solution should be provided to quickly reset them at the event. One solution could be to have (pre-baked) working images per device (on e.g. the local encoder), which just need to be flashed to a microSD card, stuck back into the tallycom and $profit. If pre-baked images seem overkill, the process of flashing them with a base OS and running ansible against them should be made more straight forward/documented better.

Sources/Hints

tallycom - Base info about the raspberry pi 3 based tallycoms.

Ansible - Base explanation of the VOC ansible repo.

34C4 Tally - Use the tally-pis branch from https://github.com/voc/cm, might need some work and should probably be merged into the master branch eventually.

https://www.raspberrypi.org/documentation/installation/installing-images/linux.md