https://github.com/bradymholt/raspberrypi-relay-controller
An Ansible playbook to provision a Raspberry Pi as a 2-channel relay control server
https://github.com/bradymholt/raspberrypi-relay-controller
Last synced: 7 days ago
JSON representation
An Ansible playbook to provision a Raspberry Pi as a 2-channel relay control server
- Host: GitHub
- URL: https://github.com/bradymholt/raspberrypi-relay-controller
- Owner: bradymholt
- Created: 2016-12-21T04:53:10.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-28T16:32:39.000Z (over 7 years ago)
- Last Synced: 2025-03-29T06:51:10.506Z (28 days ago)
- Language: Groovy
- Homepage:
- Size: 27.3 KB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# raspberrypi-relay-controller
An Ansible playbook to provision a Raspberry Pi as a 2-channel relay control server. Both a simple web interface and a REST API is provided to allow for easy control and integration with other systems.
# Instructions
The following instructions assume you are using a Raspberry Pi 3 Model B.
## Setup Arch Linux ARM on Raspberry Pi
1. Follow the [Mount SD card in VirtualBox from Mac OS X Host](http://www.geekytidbits.com/mount-sd-card-virtualbox-from-mac-osx/) guide to get access to SD Card from VirtualBox running on OS X host.
2. Prepare the SD Card by following [these instructions on the Arch Linux ARM website](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3).
3. Before running `umount boot root` from the above instructions, run `sync`.
4. After running `umount boot root` from the above instructions, shutdown VirtualBox and then Eject the SD Card from OS X.
5. Insert SD Card into the Pi and boot
6. Run `arp -a` and look for the "alarm" entry to find the IP address of the Raspberry Pi.
## Pre-provisioningBy default Arch Linux ARM does not allow password authentication for root user over ssh. So, before running the Ansible playbook, you need to ssh with the `alarm` user, `su root` and add an authorized public key so that Ansible is able to ssh in as root.
1. `ssh alarm@[ip_address]` (password: alarm)
2. `su root` (password: root)
3. `mkdir ~/.ssh`
4. `curl -o ~/.ssh/authorized_keys https://github.com/bradyholt.keys` (replace bradyholt with your GitHub username)
5. `reboot`## Provisioning
Do the following from the provisioning host (i.e. OS X or Windows):
1. Ensure [Ansible 2.2](http://docs.ansible.com/ansible/intro_installation.html#latest-releases-on-mac-osx) is installed
2. Copy config.yml.example to config.yml
3. Edit config.yml and update values per your environment
4. Run `./provision.sh`
5. Navigate to http://[ip_address]:3000 and you should see the web interface like below
![]()