I’ve been obsessed with SaltStack for over a week. This infrastructure management suite is exactly what I needed for both my personal and professional servers: simple but modular, written in python, not depending on a thousand unnecessary complex messaging stacks as it bundles zeromq, capable of both orchestration and configuration management, all this through comprehensive, well documented API and commands.
Only drawback was it had poor NetBSD support. Was :)
It’s been a long time since I’ve dug into python, so it took me a little bit of effort, but Salt now has full support of pkgin in its generic packaging functions, knows how to handle NetBSD services and is capable of dealing with NetBSD‘s sysctl(8) and sysctl.conf.
Those pieces of code have been merged upstream, I hope they’ll be available in version 0.16!
Some examples:
$ cat packages/init.sls
mypkgs:
pkg.installed:
- pkgs:
- vim
- tmux
- bash
- bash-completion
- sudo
$ sudo salt '*' state.sls packages
watto:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
korriban:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
tatooine:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
coruscant:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
ragnos:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
exar:
----------
State: - pkg
Name: mypkgs
Function: installed
Result: True
Comment: All specified packages are already installed.
Changes:
$ sudo salt '*' cmd.run 'uname -a'
tatooine:
Linux tatooine 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
watto:
NetBSD watto.home.imil.net 6.1_RC4 NetBSD 6.1_RC4 (GENERIC) i386
exar:
NetBSD exar 6.0_STABLE NetBSD 6.0_STABLE (EXAR) #0: Sun Nov 25 12:39:12 CET 2012 root@exar:/usr/src/sys/arch/i386/compile/EXAR i386
coruscant:
NetBSD coruscant 6.0 NetBSD 6.0 (XEN3_DOM0) amd64
korriban:
NetBSD korriban.imil.net 6.0_STABLE NetBSD 6.0_STABLE (KORRIBAN) #0: Tue Jan 1 23:20:36 CET 2013 root@korriban.imil.net:/usr/src/sys/arch/amd64/compile/KORRIBAN amd64
ragnos:
NetBSD ragnos 6.0 NetBSD 6.0 (RAGNOS) #2: Wed Oct 17 11:33:31 CEST 2012 root@ragnos:/usr/src/sys/arch/i386/compile/RAGNOS i386
$ sudo salt '*' pkg.version vim
watto:
7.3.762
exar:
7.3.762
korriban:
7.3.712
coruscant:
7.3.762
ragnos:
7.3.762
tatooine:
2:7.3.547-7
$ sudo salt '*' service.status sshd
tatooine:
False
watto:
True
coruscant:
True
exar:
True
korriban:
True
ragnos:
True
If you whish to use these modules without tainting your Salt package installation, simply copy them to a _modules directory within the file_roots.
Happy Salting!
The post NetBSD configuration management appeared first on Emile "iMil" Heitor 's home.

