(admin doc) moving servers
This commit is contained in:
parent
270e0b9157
commit
64728c805b
|
@ -11,6 +11,7 @@ In this document:
|
||||||
* <a href="#_environment_variables_available_to_hooks">environment variables available to hooks</a>
|
* <a href="#_environment_variables_available_to_hooks">environment variables available to hooks</a>
|
||||||
* <a href="#_other_features">other features</a>
|
* <a href="#_other_features">other features</a>
|
||||||
* <a href="#_moving_pre_existing_repos_into_gitolite">moving pre-existing repos into gitolite</a>
|
* <a href="#_moving_pre_existing_repos_into_gitolite">moving pre-existing repos into gitolite</a>
|
||||||
|
* <a href="#_moving_the_whole_thing_from_one_server_to_another">moving the whole thing from one server to another</a>
|
||||||
* <a href="#_specifying_gitweb_and_daemon_access">specifying gitweb and daemon access</a>
|
* <a href="#_specifying_gitweb_and_daemon_access">specifying gitweb and daemon access</a>
|
||||||
* <a href="#_custom_git_config">custom git config</a>
|
* <a href="#_custom_git_config">custom git config</a>
|
||||||
|
|
||||||
|
@ -180,6 +181,76 @@ to take a bunch of existing repos and add them to gitolite:
|
||||||
`conf/gitolite.conf` in your gitolite-admin repo clone. Then add, commit,
|
`conf/gitolite.conf` in your gitolite-admin repo clone. Then add, commit,
|
||||||
push.
|
push.
|
||||||
|
|
||||||
|
<a name="_moving_the_whole_thing_from_one_server_to_another"></a>
|
||||||
|
|
||||||
|
#### moving the whole thing from one server to another
|
||||||
|
|
||||||
|
[**NOTE**: I would appreciate help testing these instructions]
|
||||||
|
|
||||||
|
Just copying everything won't work unless everything on the new server is
|
||||||
|
exactly the same. I suggest you don't try it unless you know what you're
|
||||||
|
doing.
|
||||||
|
|
||||||
|
[If you feel like doing it on your own, just be aware that copying the repos
|
||||||
|
as they are *may* give you wrong hooks. Or worse, since the hooks are
|
||||||
|
symlinks, a dangling symlink means it won't get executed. And an update hook
|
||||||
|
that does not get executed is **BAD** :-)]
|
||||||
|
|
||||||
|
The following should work for all cases. Note that this is a somewhat
|
||||||
|
pessimal series of instructions -- if you know how it all hangs together you
|
||||||
|
can probably think of easier ways.
|
||||||
|
|
||||||
|
* (workstation) reclone your current admin repo (from the old server) to a
|
||||||
|
backup location for safety
|
||||||
|
|
||||||
|
cd $HOME; mkdir admin-bkp; cd admin-bkp
|
||||||
|
git clone git@oldserver:gitolite-admin
|
||||||
|
# git clone gitolite:gitolite-admin if you used the "from-client"
|
||||||
|
# method to install
|
||||||
|
|
||||||
|
* (workstation) if your old server was installed using the "from-client"
|
||||||
|
method, edit `~/.ssh/config` and change the line that says `host gitolite`
|
||||||
|
to `host old-gitolite`. Don't change it to "host gitolite-old" or
|
||||||
|
anything that matches the string "host gitolite" :-)
|
||||||
|
|
||||||
|
* (old server) disable the old server so your users will not push any
|
||||||
|
changes to it. There are several ways to do this, but the simplest is to
|
||||||
|
insert this line at the top of `~/.gitolite.rc` on the old server:
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
|
||||||
|
* (new server) copy the entire repositories directory (or wherever you have
|
||||||
|
`$REPO_BASE` pointing to) from the old server to the new server.
|
||||||
|
|
||||||
|
# (on new server, assuming default $REPO_BASE on both machines)
|
||||||
|
cd $HOME
|
||||||
|
rsync -avP git@oldserver:repositories .
|
||||||
|
|
||||||
|
Note the syntax of that rsync command carefully; one extra "/" somewhere
|
||||||
|
and it will do something else :-) Or use some other method to copy the
|
||||||
|
whole thing.
|
||||||
|
|
||||||
|
* (workstation, new server) make a brand new installation on the new server.
|
||||||
|
You must use the same keypair for the admin, with the same name. However,
|
||||||
|
it is not necessary to use the same *install method*; if one of the other
|
||||||
|
install methods is better for you on the new server, go for it.
|
||||||
|
|
||||||
|
This will end up overwriting the rsync-copied gitolite-admin repo with a
|
||||||
|
brand new "factory default" one.
|
||||||
|
|
||||||
|
* (new server) manually adjust the `~/.gitolite.rc` file to match the
|
||||||
|
settings on the old server. Do not copy the entire file outright -- some
|
||||||
|
of the variables (notably `GL_PACKAGE_CONF` and `GL_PACKAGE_HOOKS`) are
|
||||||
|
installation dependent and should not be touched!
|
||||||
|
|
||||||
|
* (workstation) go to your backup repo and force push it up to the new
|
||||||
|
server:
|
||||||
|
|
||||||
|
cd ~/admin-bkp/gitolite-admin
|
||||||
|
git push -f git@newserver:gitolite-admin
|
||||||
|
# git push -f gitolite:gitolite-admin if you used the
|
||||||
|
# "from-client" method to install
|
||||||
|
|
||||||
<a name="gwd"></a>
|
<a name="gwd"></a>
|
||||||
|
|
||||||
<a name="_specifying_gitweb_and_daemon_access"></a>
|
<a name="_specifying_gitweb_and_daemon_access"></a>
|
||||||
|
|
Loading…
Reference in a new issue