Salt-based configuration for Raspberry Pi computers.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
salt
.gitignore
CUSTOMISING.rst
README.rst
Saltfile
TODO.rst
roots

README.rst

Raspberry Pi configuration

A collection of useful Salt states for configuring Raspberry Pi devices. At present, the configuration is specifically designed for Raspbian, though because Salt is OS-agnostic may work on other distros.

It also contains an eclectic collection of tools and applications that are useful for a Pi or just plain fun.

Eventually, the common configuration may be refactored into a formula-style, separate Git repository so it can be more easily reused with Pillar data. If this interests you, create an issue and let me know!

Features

Generic

  • pi.common: Installs base packages
  • pi.common.timezone: Timezone configuration
  • pi.common.locale: Locale configuration
  • pi.common.editor: Editor configuration (EDITOR variable)
  • pi.common.openssh: OpenSSH configuration (Git environment variables)
  • pi.common.wifi: Configure wifi settings
  • pi.common.cifs: CIFS mounts
  • pi.common.sshfs: SSHFS mounts
  • pi.common.ssh: SSH key generation
  • pi.common.keyboard: Keyboard configuration (US)
  • pi.common.rtc: General configuration for setting up RTCs (disable fake-hwclock, enable hwclock etc) on any environment
  • pi.common.reboot: Reboot the device
  • pi.common.user: Remove default passwords from user accounts
  • pi.common.python-smbus: Python SMBus packages

Raspberry Pi-specific

  • pi.common.update: Raspberry Pi update state (upgrade packages, rpi-update, reboot)
  • pi.common.expand-rootfs: Expands the root filesystem to fill the SD card
  • pi.common.raspi-config: Remove profile.d script stating you need to run raspi-config on SSH login (or running it for you as root)
  • pi.common.reduce-sd-activity: Tweak the filesystem for reducing SD card r/w cycles
  • pi.common.camera: Raspberry Pi Camera packages and installation
  • pi.common.i2c: I2C Device Tree overlay, setup and packages
  • pi.common.rtc.ds3231: DS3231 Real-Time Clock (RTC) configuration via Device Tree overlays
  • pi.common.usb-power: Configure USB for maximum current
  • pi.common.heartbeat-led: Enable activity LED heartbeat via overlays
  • pi.common.pifm: PiFM installation

Provisioning targets

First, configure any relevant private data within salt/roots/pillar. Then, provision like so:

salt-ssh [hostname] state.apply

Identifiers for this command come from the Salt roster file (salt/roster).

Requirements

  • Salt 2016.3.6+ (may work on earlier versions)

  • Your master (the computer running Salt) must have root-level SSH access to the given host via key-based authentication.

  • If your host is Debian/Ubuntu, you must have certifi installed:

    sudo easy_install certifi