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
certifi
installed:sudo easy_install certifi