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!
pi.common: Installs base packagespi.common.timezone: Timezone configurationpi.common.locale: Locale configurationpi.common.editor: Editor configuration (EDITOR variable)pi.common.openssh: OpenSSH configuration (Git environment variables)pi.common.wifi: Configure wifi settingspi.common.cifs: CIFS mountspi.common.sshfs: SSHFS mountspi.common.ssh: SSH key generationpi.common.keyboard: Keyboard configuration (US)pi.common.rtc: General configuration for setting up RTCs (disable fake-hwclock, enable hwclock etc) on any environmentpi.common.reboot: Reboot the devicepi.common.user: Remove default passwords from user accountspi.common.python-smbus: Python SMBus packages
pi.common.update: Raspberry Pi update state (upgrade packages, rpi-update, reboot)pi.common.expand-rootfs: Expands the root filesystem to fill the SD cardpi.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 cyclespi.common.camera: Raspberry Pi Camera packages and installationpi.common.i2c: I2C Device Tree overlay, setup and packagespi.common.rtc.ds3231: DS3231 Real-Time Clock (RTC) configuration via Device Tree overlayspi.common.usb-power: Configure USB for maximum currentpi.common.heartbeat-led: Enable activity LED heartbeat via overlayspi.common.pifm: PiFM installation
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).
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
certifiinstalled:sudo easy_install certifi