I wasn't able to find clear docs on the manifest functionality via Google searching, but this seems logical to me. Given great packages like blueprint, does Puppet have the ability to reverse-engineer a machine config? If yes, what's the command(s)?
I'd use blueprint except I'm not sure it works on SmartOS/Solaris. Thanks!
Puppet != blueprint. The core puppet tools do not do reverse engineering, from what I have read about blueprint, it is limited to systems based on rpm/deb packaging systems, which is not used by SmartOS.
But this doesn't tell us much, it certainly seems possible that someone could develop a tool for SmartOS to reverse engineer it, but the tools you mentioned do not seem to do that. I am not aware any tool that does work for SmartOS.
This is an area where I've been met with a great deal of frustration in Solaris. One unreasonable way I've found that could work for Solaris global zones would be to create differential flars (one from the beginning, then one afterwards), then extract the differential flar's cpio archive and pass it to a DIY monkeyscript that would create a Puppet module.
When you have ZFS root pools you can just create a new BE, make your changes, lucompare and send that to DIY monkeyscripts which can spit out your Puppet modules. But again that doesn't help with non-global zones.
The tool mentioned in the earlier answer, blueprint, can quite easily be expanded. It just needs a brave soul to check it out from https://github.com/devstructure/blueprint and create a
blueprint/backend/pkgsrc.py
, then add it toblueprint/managers.py
as well. At first glance seems like a day's job to me.. I don't have a SmartOS system though and will rather have a go at implementing aptitude support now ;)