- From: Brad Knowles <
>
- To:
- Cc: Brad Knowles <
>
- Subject: [chef] Re: Push jobs vs SSH
- Date: Fri, 6 Feb 2015 16:54:18 -0600
On Feb 6, 2015, at 9:45 AM, Eric Horne
<
>
wrote:
>
My expectations for pushy were a little more lofty, I guess. I was hoping
>
for more integrated orchestration, the ability to run a single recipe on a
>
system as opposed to just running chef-client to get everything (so I guess
>
something more like ansible, but integrated into Chef). Something like:
>
"push out THIS change" as opposed to "sync all changes now”.
So why not schedule a chef-client run with a specified recipe to be executed?
IMO, the problem with tools like Ansible is that they don’t force you to
re-think your approach to solving problems, as you try to scale up. You
still think of it as shell scripts and ssh to run those scripts.
From the perspective of managing scalable systems, you really do want to
define what you want the overall system to look like, and then you need to
let the system maintain itself. Don’t ssh out to a bunch of machines to run
a shell script to edit files in place, because you’re already starting from
an unknown state that just takes you one step further down the line of being
further and further un-maintainable.
Instead, take files that are properly version controlled and push them out
and replace whatever might be present that doesn’t match what’s in your known
good copy of the file from your version control system. And if you do
actually need to make changes to what configuration gets put on a given
server, then make sure that you properly version control the file and the
code that makes that happen.
Chef doesn’t completely and totally force you to work this way, but this is
the easiest way to do things in Chef, and that’s a part of what makes it more
scalable.
I’m getting involved in a Puppet job for a customer, and while there are some
things that I am finding I like about being able to easily apply a puppet
manifest locally to a vagrant VM, I am now starting to have some questions.
Like, I have no idea whatsoever how to take what I’ve done with local manual
operations that amount to “puppet module install xyzzy” and “puppet module
install dependency” followed by “puppet apply xyzzy/manifests/init.pp” and
take that to the next level of being able to automatically apply that process
to nodes as they are created.
--
Brad Knowles
<
>
LinkedIn Profile: <
http://tinyurl.com/y8kpxu>
Archive powered by MHonArc 2.6.16.