Nahum Shalman

Packaging Standalone Salt Builds for SmartOS

This isn't for everyone. Some people like their package manager to install their configuration management tool.
Others like to use things like the omnibus install of chef.
This is like the latter.

This process will hopefully be much better when the successors of bbfreeze-1.1.2 and salt-0.17.1 are out...
In the meantime, here are my notes on how I got it working.

  • Saltstack Docs: Automatic Update / Frozen Deployments
  • bbfreeze (tool for freezing python applications) needs the patch for SmartOS/SunOS. (Merged upstream but not yet in a release.)
  • Patches you should apply manually to your tree before you build (as of 0.17.1 they aren't in yet):
    1. Fix SMF support
    2. Fix up esky packaging (Basically make sure your FREEZER_INCLUDES has all the goodies from the latest version of setup.py in the develop branch)
  • My Build Script doesn't apply the patches, but a side effect of running it is that you'll have a reusable build environment.
  • Fix libgcc link error: After you unzip the zip file, copy ("cp", not "mv") libgcc_s.so.1 from the salt-<version>.<platform>-<arch> subdirectory up into the directory with the "binaries". (I don't know why a copy isn't placed up top by the build process...)

Instructions on how to use the resulting zip files will be in a separate post.

smartos salt