aboutsummaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorEmil Renner Berthing <esmil@labitat.dk>2018-10-03 15:34:01 +0200
committerEmil Renner Berthing <esmil@labitat.dk>2018-10-03 21:08:21 +0200
commitb478f515c9f893c6e7b70ac142ab91d7d3837e33 (patch)
tree837443b16eab179bbed1b341c95f9896045e2f96 /roles
parent2013899ce249fd316d7b3df9a4d79b8936bf0b1c (diff)
downloadlabitat-ansible-b478f515c9f893c6e7b70ac142ab91d7d3837e33.tar.gz
labitat-ansible-b478f515c9f893c6e7b70ac142ab91d7d3837e33.tar.xz
labitat-ansible-b478f515c9f893c6e7b70ac142ab91d7d3837e33.zip
raspbian-template: add rpi example role
Diffstat (limited to 'roles')
-rw-r--r--roles/raspbian-template/README.md55
-rw-r--r--roles/raspbian-template/files/eth0.network6
-rw-r--r--roles/raspbian-template/meta/main.yml6
-rw-r--r--roles/raspbian-template/tasks/main.yml12
-rw-r--r--roles/raspbian-template/vars/main.yml12
5 files changed, 91 insertions, 0 deletions
diff --git a/roles/raspbian-template/README.md b/roles/raspbian-template/README.md
new file mode 100644
index 0000000..7a91651
--- /dev/null
+++ b/roles/raspbian-template/README.md
@@ -0,0 +1,55 @@
+raspbian-template
+=================
+
+About
+-----
+
+This is a template for an ansible role setting up a
+[Raspberry Pi][rpi] running [Raspbian][raspbian].
+
+[rpi]: https://www.raspberrypi.org
+[raspbian]: https://www.raspbian.org
+
+Bootstrap a new Raspberry Pi
+----------------------------
+
+Download a "Lite" image from the Raspberry Pi [homepage][downloads],
+and write it to your sd-card as described on that page.
+
+Before removing the sd-card from your computer make sure to mount
+the vfat filesystem on the first partition and create an (empty)
+file called "ssh". This enables an [SSH][ssh] daemon on boot so
+you and Ansible can log into it on boot.
+
+Now move your sd-card to the Raspberry Pi, connect an ethernet cable
+and lastly the power.
+Once you figure out the ip address of the Raspberry Pi you can run
+the following command to bootstrap it:
+
+```sh
+ansible-playbook -D \
+ -i raspbian-template, \
+ -e ansible_host=<ip address> \
+ -e ansible_ssh_user=pi \
+ -e ansible_ssh_pass=raspberry \
+ raspbian-template.yml
+```
+
+Now go buy a Mate or something. This will take a long time..
+
+Once it finishes you should have a fully upgraded Raspbian
+with all the Labitat users and their ssh keys in place.
+Hence you should now be able run ansible with your own
+ssh user. Eg. just
+
+```sh
+ansible-playbook -D \
+ -i raspbian-template, \
+ -e ansible_host=<ip address> \
+ raspbian-template.yml
+```
+
+Now is a good time to ssh into it and reboot it,
+so it uses the new network setup after boot.
+
+[ssh]: https://en.wikipedia.org/wiki/Secure_Shell
diff --git a/roles/raspbian-template/files/eth0.network b/roles/raspbian-template/files/eth0.network
new file mode 100644
index 0000000..3e351ea
--- /dev/null
+++ b/roles/raspbian-template/files/eth0.network
@@ -0,0 +1,6 @@
+[Match]
+Name=eth0
+
+[Network]
+DHCP=yes
+IPv6AcceptRA=yes
diff --git a/roles/raspbian-template/meta/main.yml b/roles/raspbian-template/meta/main.yml
new file mode 100644
index 0000000..731a8f2
--- /dev/null
+++ b/roles/raspbian-template/meta/main.yml
@@ -0,0 +1,6 @@
+---
+dependencies:
+- role: raspbian
+- role: users
+
+# vim: set ts=2 sw=2 et:
diff --git a/roles/raspbian-template/tasks/main.yml b/roles/raspbian-template/tasks/main.yml
new file mode 100644
index 0000000..31f91f5
--- /dev/null
+++ b/roles/raspbian-template/tasks/main.yml
@@ -0,0 +1,12 @@
+---
+- name: Install network configuration
+ copy:
+ dest: '/etc/systemd/network/10-eth0.network'
+ src: eth0.network
+ owner: root
+ group: root
+ mode: 0644
+ tags:
+ - networkd-config
+
+# vim: set ts=2 sw=2 et:
diff --git a/roles/raspbian-template/vars/main.yml b/roles/raspbian-template/vars/main.yml
new file mode 100644
index 0000000..21e034c
--- /dev/null
+++ b/roles/raspbian-template/vars/main.yml
@@ -0,0 +1,12 @@
+---
+hostname: 'raspbian-template'
+
+apt_sources:
+ raspbian:
+ components:
+ - main
+ - contrib
+ - no-free
+ - rpi
+
+# vim: set ts=2 sw=2 et: