Lee Hambley wrote:
> Presumably Joe, my thought was that your Puppet master would inherit a
> configuration from your application's code repository, and disseminate
> those instructions down the the puppet nodes during a deploy.
>
> But, you have to admit that deploying a server often isn't a one-step
> thing, often new code adds to dependencies and requires alternate
> configurations...?
>
> - Lee
>
> 2009/7/2 Joe McDonagh <
joseph.e...@gmail.com
> <mailto:
joseph.e...@gmail.com>>
>
>
> Donovan Bray wrote:
> > I call hogwash on not using capistrano for provisioning.
> >
> > Yes. The default canned set of deploy tasks is not enough to
> bring up
> > a server from bare os.
> >
> > But you do have a single hook that you can use. deploy:setup
> >
> > Capistrano is just a framework of assumptions; and you can override
> > every assumption either by using the DSL or ruby.
> >
> > We built a task chain started with deploy:setup to provision an
> entire
> > cluster; didn't override any of the standard assumptions, our only
> > requirement is that the boxes we are provisioning are a version of
> > ubuntu > 8
> >
> > We use the same scripts to deploy to server clusters that are split
> > into 4 roles as well as all 4 roles on a single server.
> >
> > Provisioning a cluster takes about 25 minutes to do all the apt-gets
> > and compile the stuff we build from source.
> >
> > Creating a new cluster is cheap, without capistrano would be error
> > prone, time consuming, and expensive.
> >
> >
> > On Jul 2, 2009, at 5:54 AM, will <
will...@gmail.com
> <mailto:
will...@gmail.com>> wrote:
> >
> >
> >> Makes sense, I am still yet to look into Chef or Puppet for server
> >> provisioning but it maybe a task for the future and Capistrano may
> >> have a role to play there.
> >>
> >> Thanks for replying,
> >> Will
> >>
> >> On Jul 2, 1:45 pm, Lee Hambley <
lee.hamb...@gmail.com
> <mailto:
will.p...@gmail.com>>
> >>>
> >>>
> >>>> Hi,
> >>>>
> >>>> Just a general question
> >>>>
> >>>> Many people have mentioned Capistrano as being a great tool for
> >>>> system
> >>>> administration but I am finding it hard to find any reasons
> on why
> >>>> it would
> >>>> be? Many of the tasks can be done with a much simpler Bash script
> >>>> but maybe
> >>>> I don't know of the fantastic features Capistrano is capable of
> >>>> because of
> >>>> the somewhat lacking documentation.
> >>>>
> >>>> Any views on this?
> >>>>
> >>>> Will
> >>>>
> >
> > >
> >
> How do you ensure that during the maintenance part of the server
> life-cycle that your servers' configurations stay within your
> spec/standard?
>
> Unless these are like throw away clusters of cloud nodes that you
> don't
> expect to live very long, I think cap isn't really the right tool.
>
> --
> Joe McDonagh
> Operations Engineer
>
www.colonfail.com <
http://www.colonfail.com>
>
>
>
>
>
> >
Lee, you're 100% correct, that would be optimal, however because of the
way Donovan had worded his post it didn't sound like there was SCM
software involved.
Right now, I have to use a custom script for puppet pushes instead of
cap, for a couple reasons:
(Keep in mind I barely know ruby, so hacking cap isn't something i've
gotten into just yet)
1. To lock down the configuration somewhat in the event that the
puppetmasterd is compromised, the puppet manifests are root:root mod
640, with a facl that gives the puppet user read-only access to the
manifests. You can preserve facl's with -A in rsync, however problem 2
for me gets in the way of simplicity.
2. Because the root account is not used on any of my systems (sudo
only), I have to have this interim step where the configuration is in my
home directory where the facl's can be applied via a facl restore file.
Then they are rsync'd with -A over to /etc/puppet. I know it seems a
little weird, but security is pretty paramount to me, and I want to keep
using FACLs because they allow for flexibility.
Previously I was using star (tar on Ubuntu 8.04 is compiled without
support for facls), but it was too costly in terms of time to be
rebuilding a star, transferring, untarring every time any change no
matter how trivial was made.