Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Gentoo Enterprise deployment tools
Date: Tue, 21 Jun 2005 23:33:47
Message-Id: 20050621233140.GC27278@exodus.wit.org
In Reply to: Re: [gentoo-dev] Gentoo Enterprise deployment tools by Thierry Carrez
1 On Tue, Jun 21, 2005 at 08:35:52PM +0200, Thierry Carrez wrote:
2 > I don't say that it cannot be done, and I don't ask what's the best way
3 > to do it. I just ask *if* we should try to provide higher-level tools
4 > (and/or doc) to help in doing so. It's not obvious (especially for
5 > non-developers) how to proceed in that situation, even if a lot of
6 > people have designed their own solution in their corner.
7 Best way to do it? Scary notion, not the way we're doing it
8 currently.
9
10 Push mode is preferable imo, 'cept no code exists to support that.
11 Someone could write the necessary client/server code, but that would
12 have issues when bound into existing portage apis...
13
14 > >> With automatic deployments, would we run into difficult-to-solve
15 > >> etc-update problems ? Should/could the ServicePack system take care of
16 > >> that ?
17 > >
18 > > I wouldn't use etc-update for this on a enterprise rollout personally.
19 > > If you need config cfengine does a nice job, as well as using
20 > > cvs/rcs/something-else
21 >
22 > Again, the technology is out there, it's just not tightly integrated.
23 > Should we leave it as-is and let everyone design his own tools to
24 > connect the dots or should we ?
25 Not sure if the technology persay is out there honestly. If it were a
26 cluster, cloned boxes, I'd say minimalize CONFIG_PROTECT, and
27 (assuming you write the client/server cruft above) slip in config pkgs
28 that get installed alongside... or, just jam the config changes into
29 the pkg (not clean but it's possible). Or just trigger
30 staggered reboot's on the boxes if you've got a fast network and pxe
31 boot + imaging setup (I like the other method a bit more however :)
32
33 If you're managing a half dozen servers, each server running it's own
34 customized httpd.conf, I don't see an easy way to handle that
35 (would love to hear any ideas people have on that one).
36
37 Basically, kind of curious of how one could easily handle config
38 management of multiple boxes, with config's potentially being wildly
39 different from system to system (talking about a bit more then just
40 /etc/conf.d/net.* and /etc/hostname differences here). I suspect just
41 wrapping the config changes into a bingpkg, and sliding them out
42 alongside on a push would suffice, but that's just one possible
43 method.
44
45 > >> Even in a simpler setup (preprod > production) we don't have the tools
46 > >> to push a software configuration change from a test machine to a
47 > >> production one.
48 > >
49 > > What exactly are you looking for here?
50 >
51 > Should we provide high-level software that defines an update pack (new
52 > binaries + configuration changes), allows to test it on a preproduction
53 > system and (once tested) to push it to registered production systems ?
54 > Or let everyone write his own treefreezing + network mounts + shell
55 > scripts + cfengine / CVS magic combo to do it ?
56 How do you push it? I don't mean, what protocol/underlying, I'm
57 asking how do you actually push _portage_ to do what you want? Either
58 you try and abuse the craptastic api in stable to pull it off, or you
59 probably resort to a catalyst akin trick of calling emerge via system.
60
61 Neither is a proper solution. Api is required, further, preferably
62 portage innards being designed such that you can swap in your own
63 remote subsystem (whether cache tree or config) so it's a matter of
64 pushing commands down the client/server pipes, with the portage
65 config/installation on that box pulling what it needs (remote tree ==
66 having to pull all relevant files if building, binpkg is easier
67 however).
68
69 > > Portage needs work; I know the devs are working on it, I know there
70 > > are other people who are doing there own things. I see a lot of
71 > > portage-2.1 features that greatly simplify what you are trying to do (
72 > > repositories, config rewrite..etc.. ). I think portage and what it
73 > > covers is a big part of this. Recollecting a conversation with jstubbs
74 > > about portage he mentioned that he wouldn't want the portage-team to
75 > > maintain a Enterprise-like distribution program, but that the new API
76 > > would be great to write one against ;)
77 >
78 > I don't think it should be the role of the portage-team either.
79
80 I draw a slightly finer line... portaged, some hypothetical
81 client/server ap, not our business to implement, just provide an api
82 for them to use. Thing is, if they're going remote, they'll either
83 need to be able to trigger sync's on the boxes local tree
84 (innefficient as all hell), or the tree is remote. If the tree is
85 remote, that falls on portage devs head to provide a framework so the
86 tree can be remote, in other words abstraction/framework design.
87
88 Further... if you're pushing updates out, you need some method to
89 query the vdb from the target- even if you're dealing with pushing
90 updates down to a set of identical installations, you need to identify
91 (easily/cleanly) what needs to be built, and what needs to be pushed
92 down the line. Dancing around it, but you need access to the vdb for
93 that system definition, which probably would be stored locally... in
94 which case, the system targets probably would need to have a remote
95 vdb.
96
97 Implementing all of the crazy and fun stuff isn't portage (the
98 project) business (interest in it personally, but other things have
99 much higher priority). To do the crazy/fun stuff requires a sane
100 design so stuff can be swapped in/out as required, which falls on our
101 heads though, and is what's being kicked around/worked on now.
102
103 > > I know Cardoe and genstef? are working on a seperate package manager
104 > > that just handles binaries but uses all the current portage stuff, so
105 > > you might want to talk to them as well.
106 >
107 > I sure hope they will comment on that thread :)
108 Kind of curious what they're attempting myself, since I've not heard
109 much thus far...
110 ~harring
111 --
112 gentoo-dev@g.o mailing list