From: Junio C Hamano <gitster@pobox.com>
To: Jan-Benedict Glaw <jbglaw@lug-owl.de>
Cc: git@vger.kernel.org
Subject: Re: Large-scale configuration backup with GIT?
Date: Sun, 02 Sep 2007 14:49:49 -0700 [thread overview]
Message-ID: <7vd4x0pwjm.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20070902201724.GB10567@lug-owl.de> (Jan-Benedict Glaw's message of "Sun, 2 Sep 2007 22:17:24 +0200")
Jan-Benedict Glaw <jbglaw@lug-owl.de> writes:
> I'm just thinking about storing our whole company's configuration into
> GIT, because I'm all too used to it. That is, there are configuration
> ...
> In both cases, I'd be left with a good number of GIT repos, which
> should probably be bound together with the GIT subproject functions.
> However, one really interesting thing would be to be able to get the
> diff of two machine's configuration files. (Think of machines that
> *should* be all identical!) For this, it probably would be easier to
> not put each machine into its own GIT repo, but to use a single one
> with a zillion branches, one for each machine.
>
> Did anybody already try to do something like that and can help me with
> some real-life experience on that topic?
This is something similar to what I and others in my group did
long time before git was even invented. I'd suggest you go in
the opposite direction.
If you have 5 configurations, each of which have 20 machines
that _should_ share that configuration (modulo obvious
differences that come from hostname, IP address assignment,
etc), then
- You keep track of 5 configurations; in git, you would
probably maintain them as 5 branches.
- You have a build mechanism to create systemic variation among
20 machines that shares one configuration; this can be
different per branch. So if you have 20 solaris machines all
should share logically the same configuration, you would:
$ git checkout solarisconf
... tweak the config for machine #27, adjusting for
... hostname, IP address variation, etc...
$ make target=solaris27 output=../solaris27.expect
Make that makefile produce the output in named directory;
- You get the config dump from your machines (your "staging
area"), as you planned. Then after running the above, you
could:
$ cd ..
$ diff -r solaris27.expect solaris27.actual
if your "staging area" for machine #27 is "solaris27.actual".
The difference you would see is something done by *hand* on the
machine, which you would want to propagate back to the solaris
configuration *source* you keep track in git. For some changes,
you may even want to adjust that single manual change done on
machine #27 so that you do not have to do that on other 19
solaris boxes manually, by adjusting the build procedure in the
solarisconf branch.
next prev parent reply other threads:[~2007-09-02 21:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-02 20:17 Large-scale configuration backup with GIT? Jan-Benedict Glaw
2007-09-02 20:37 ` David Kastrup
2007-09-02 21:24 ` Jan-Benedict Glaw
2007-09-02 21:49 ` Junio C Hamano [this message]
2007-09-03 0:35 ` Martin Langhoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vd4x0pwjm.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jbglaw@lug-owl.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.