SmartOS, would you like some Salt with that?
I was in the market for a configuration management and remote execution tool. After looking around I didn’t really find any I liked and also supported SmartOS (and illumos).
It quickly became clear that I would need to do some legwork. I’m by no means a great programmer and my language selection is mostly limited to Turbo Pascal, C#, and Java supplemented with shell script (~bash really), perl (long ago), and Python.
My eye fell on SaltStack as it uses mostly Python, the community looked welcoming. I looked at some PR’s and the feedback happening on them was constructive. As a plus, Nahum Shalman already did some legwork to get SaltStack into the SmartOS global zone!
I spend a lot of time getting SmartOS support for managing zones/VMs usable.
imgadm
execution module got cleaned up and reworkedvmadm
execution module was written as a replacement for the existinvirt
compatible modulesmartos
state module was written that uses the imgadm and vmadm execution modules, this allows for management of zones/vms, images, and configuration.
I’ve been running these at home for about 3 months. They are pretty solid, I have a few things I want to improve in them but they are certainly usable. If you use them and find any issues, please open an issue on the saltstack/salt github project and tag me using @sjorge. I will try and fix them as soon as I can.
After this I started to manage my zones themselves hitting a few roadblocks along the way. Most of these changes also apply to illumos in general. (Sometimes to *BSD’s too)
zpool
execution module got reworked and now supports most actions the underlying cli command does.zfs
execution module also got reworkedzfs
state module was writting that uses the rewritten zpool and zfs execution modules.zfs.scheduled_snapshot
written to replace my usage of zsnapper in the global zone. It’s not perfect but gets the job done. (Use the schedule state to execute this state often.)
mdata
execution module to retrieve and set SmartOS metadata.fmadm
execution module written for Solarish platforms.system
execution module written for Solarish platforms.cron
execution module fixed for Solarish platforms when setting jobs for a different user.shadow
execution module improved with gen_password and del_password for Solarish platforms.timezone
execution module fixed for Solarish platformslocale
execution module fixed for Solarish platformspkgin
execution module now loads as default on SmartOS- grains now show more info on SmartOS, including mdata
- grains now show correct info when running on SmartOS under LX branded emulation.
Some other small fixes here and there.
Overall SaltStack 2016.3 is working great for me on SmartOS and OmniOS. If you use these platforms, give it a spin!
How do I get this awesomeness? A pip install should work fine inside a zone. For the global zone I have a esky package hosted here.