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.
imgadmexecution module got cleaned up and reworked
vmadmexecution module was written as a replacement for the existin
smartosstate 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)
zpoolexecution module got reworked and now supports most actions the underlying cli command does.
zfsexecution module also got reworked
zfsstate module was writting that uses the rewritten zpool and zfs execution modules.
zfs.scheduled_snapshotwritten 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.)
mdataexecution module to retrieve and set SmartOS metadata.
fmadmexecution module written for Solarish platforms.
systemexecution module written for Solarish platforms.
cronexecution module fixed for Solarish platforms when setting jobs for a different user.
shadowexecution module improved with gen_password and del_password for Solarish platforms.
timezoneexecution module fixed for Solarish platforms
localeexecution module fixed for Solarish platforms
pkginexecution 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.