Running Chrome in dual screen kiosk mode on Ubuntu

Background At work we have to large TV screens used for displaying Grafana dashboards. They are both connected to the same PC. The PC was running Windows so anytime the PC would reboot, we would have to manually conenct to it via VNC and move the browsers around and set them in full screen mode. As we are in the office only during work hours, the PC would be shut down and restarted everyday.

Using Python in SaltStack reactor

Sometimes you need to do some complex actions in a Salt Reactor in which case Python comes in handy. The documentation is not very clear on how to write Python states. The main point is that Salt expects a structure that can be compiled to a Python dictionary. The run() function has to return a dictionary which resembles the state you would write with YAML. Here’s an example to add a domain to route 53:

DHCP Option 121 in PFSense

The DHCP Option 121 is described here: http://tools.ietf.org/html/rfc3442. It allows the DHCP server to send a classless route. In PFSense, one can add this option by setting the type to string. The catch is that the length is variable, according to the netmask length. For example, to add 10.0.0.0/8 via 10.100.5.1, the HEX is: 08:0A:0A:64:05:01

Custom SSL certificate for iDrac 7 without CSR

If you want to use the Dell iDrac with a certificate signed by your CA, the web gui allows you to create a CSR, and upload the signed certificate. But if for some reason you want to generate the certificate and key outside of iDrac, the gui doesn’t offer a way to upload the key. There is a way to use fully custom certificates, but it requires the racadm command line utility.

Zone transfer setup for BIND with split horizon on the same zone

With the default configuration, a zone transfer from a master to a slave of BIND with split horizon has the slave transfer only the view of that zone that is available to its IP address. The documentation is a bit vague on the subject, but it turns out it is possible for the slave to transfer the zone definitions corresponding to all (or a subset) of the views. The idea is to identify the slave for zone transfer purposes using something else that its IP address.