Wednesday 13 February 2013

Setting up Gitolite (git and http access) on Fedora 17

Note: Part2 (http) is not a working configuration yet. I shall update this post when it is.

These are my notes while following the installation instructions at:
  • http://sitaramc.github.com/gitolite/install.html
  • http://sitaramc.github.com/gitolite/ssh-and-http.html
I have tried to be verbose in the hope that this might be useful for someone without a great deal of Linux knowledge.

Part 1 - Installing gitolite (this part works)


Create hosting user (user with no interactive login shell access) username = git On Fedora, this command creates a system account git with local password locked. The default option for the useradd command (when --password option isn’t supplied) is to disable the password.

switch to git user -
Clone from gitolite repository
Actual Install - using option 2 (http://sitaramc.github.com/gitolite/install.html) Now clone admin-repo. Make changes and push to origin

Part 2 - http bridge (have an issue with this. I guess I got something wrong with permissions) 

Pre-requisites

  • Apache 2.x with CGI and Suexec support installed. 
  • Git and Gitolite installed with user "git" and group "git", and pubkey SSH access configured and working. 
  • Git plumbing installed to /usr/libexec/git-core 
  • Gitolite base located at /home/git 
  • Apache DOCUMENT_ROOT set to /var/www 
  • Apache runs with user apache and group apache 
  • Create digest password file

  • Ensure mod_cgi, mod_alias, and mod_env are enabled, 
i.e. verify that /etc/httpd/conf/httpd.conf has lines like so:
Loadmodule alias_module modules/mod_alias.so

setup

GITOLITE_BASE = /home/git
Edit your .gitolite.rc and add at the very top Next, check which document root your Apache's suexec accepts: We're interested in AP_DOC_ROOT, which is set to /var/www in our case. Create a bin and a git directory in AP_DOC_ROOT: Next, create a shell script inside /var/www/bin named gitolite-suexec-wrapper.sh, with mode 0700 and owned by user and group git. Add the following content: File: /var/www/bin/gitolite-suexec-wrapper.sh

setup apache

Added this file : /etc/httpd/conf.d/gitolite.conf

Outcome

When accessing: http://mochapenguin.hostname/git/testing.git Error Log - /var/log/httpd/error-git.log

Attempted Resolution: set R = daemon

set R = daemon on both repos in gitolite.conf and pushed to origin (No joy)

Attempted Resolution: Adjusting permissions

(No joy)
Log file directory permissions - /var/log/httpd /var/www folder permissions Now relaxing log file directory permissions: Notice there is a new suexec.log
/var/log/httpd/error-git.log /var/log/httpd/suexec.log

Attempted Resolution: Turned off SELinux

This got rid of the suEXEC policy violation issues.
/var/log/httpd/error-git.log Error log /var/log/httpd/error-git.log showed path error. Recall Gitolite clone directory name was gitolite (at /home/git) and not gitolite-source. Modified the exec line accordingly. Now when I try to access http://server/git/testing.git, I get this error:

2 comments:

  1. i have exactly same problem.. couldnt find solution yet..

    ReplyDelete
    Replies
    1. @Benjamin - See this thread on Google Groups - https://groups.google.com/forum/#!topic/gitolite/IAJ_iL34gm8

      Delete