On Tue, Oct 1, 2013 at 3:11 PM, Tim O'Guin <
timo...@gmail.com> wrote:
> >>
>> Not quite. I mean besides versioning what you push to a minion,
>> commit what was previously there to a branch before each change for a
>> possible rollback and to be able to use the VCS tools to compare
>> differences over time and/or between hosts. If no changes ever
>> happen besides what is pushed to the node, the master history might be
>> enough, but in the real world programs and OS's update themselves,
>> admins make helpful quick-fixes, etc., etc. and you want to know what
>> really happened, not just what was supposed to have happened.
>
>
> Ah gotcha, like taking and committing a snapshot before applying a state?
Yes, but in a central VCS that would have tools to easily show
differences between different systems as well as what changed on a
single host.
> The way we're doing that for our production websites that get deployed from
> Mercurial (not with Salt) is any changes that get made directly on
> production get committed to a hotfix branch and pushed to another repo for
> review, which gets merged back into the main repo and then into the dev and
> staging environments.
>
> I agree it'd be nice to have something like this for salt, but I have no
> idea what it would take to implement. Ideally everything goes through source
> control, but, as you've said, that doesn't always happen.
For content that is strictly your own, pushing it through the VCS is
probably enough - especially if your tools do enough logging to track
back any deployed change to the relevant source change and the person
that approved it for production. But things get messy with OS and
application packages that tend to drag along their own default
configurations and conflict with your local changes during updates.
Linux distributions at least do a half-hearted attempt at abstracting
local settings under /etc/sysconfig/ but it is far from perfect.
--
Les Mikesell
lesmi...@gmail.com