That sounds like an efficient solution too. But for my project that's a bit
too much, I guess.


2013/8/11 Nathan Brazil <n...@bitaxis.com>

> I had a similar challenge.  Here is a rough idea of what I did:
>
> I started with different kinds of deployables, such as config files,
> shared libs, apps, etc.  Each kind of deployable got its own class that
> knows how to deploy that kind of deployable via a deploy() method.
>
> Then I created the concept of deployment groups.  Each group would contain
> a set of deployables.  There was a core group containing deployables
> applicable to all servers, another group that pertained only to subset A of
> the severs, still another that pertained only to subset B, etc.
>
> Then I associated each role to a set of groups.
>
> So, when I would execute
>
> $ fab -R master deploy # OR
> $ fab -H slave deploy
>
>
> the task code would march through the groups for the role to form a set of
> deployables, iterate through the set, and call the deploy() method on each
> item for each server belonging to the role.
>
> Furthermore, if I were to run
>
> $ fab -H host1 deploy # OR
> $ fab -H host2 deploy
>
>
> the task code would figure out the role that host belonged to, and repeat
> the above process to deploy just to that server.
>
> --
>
> On Aug 10, 2013, at 8:09 PM, Jens Rantil <jens.ran...@gmail.com> wrote:
>
> Hi dAnjou,
>
> I see that noone has responded to you, so I'll give it a shot. It seems
> like you posted three separate, but duplicate e-mails, to this group. Let's
> hope all succeeding replies stick to this thread to keep things searchable
> and browsable. One e-mail is enough in the future. ;-)
>
> There's multiple ways of doing what you want. Either way, I'd use
> functions and not classes. I guess it's just a personal preference. Pick
> and choose:
>
> 1. Setting up initial state in a task: Create one task that configures
> your env variable with all information needed to execute further tasks.
> This makes it possible to execute
>
> $ fab master deploy
> ...
> $ fab slaves deploy
> ...
>
> This works especially well if deployment is fairly similar.
>
> 2. Use two "meta" tasks; ie. 'deploy_master' and 'deploy_slaves'. These
> two tasks can set up env state and call the individual tasks (possibly
> using `execute`[1]) needed to execute the individual steps of each
> deployment.
>
> [1]
> http://docs.fabfile.org/en/1.7/api/core/tasks.html?highlight=execute#fabric.tasks.execute
>
> Cheers,
> Jens
>
> Sent from my iPhone 5S
>
> 9 aug 2013 kl. 18:00 skrev dAnjou <m...@danjou.de>:
>
> Hi,
>
>
> (first post here)
>
>
> I have two roles (lets call them master and slaves). They have a different
> deployment setup but they share a particular set of configuration options.
> Other options are different though. What is the best way in fabric to do
> this kind of thing? All I can imagine is having a base config class and
> then two subclasses that override or add certain options.
>
>
> Thanks in advance.
>
>
> dAnjou
>
> _______________________________________________
>
> Fab-user mailing list
>
> Fab-user@nongnu.org
>
> https://lists.nongnu.org/mailman/listinfo/fab-user
>
> _______________________________________________
> Fab-user mailing list
> Fab-user@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fab-user
>
>
>
_______________________________________________
Fab-user mailing list
Fab-user@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to