Projet

Général

Profil

L'installation de gitolite » Historique » Version 2

Yanick Delarbre, 09/11/2011 12:30

1 2 Yanick Delarbre
h1. Gitolite
2 1 Yanick Delarbre
3 2 Yanick Delarbre
h2. L'installation du serveur gitolite
4 2 Yanick Delarbre
5 1 Yanick Delarbre
<pre>
6 1 Yanick Delarbre
# dpkg-reconfigure locales Règles le warning à propos des locales non configurés
7 1 Yanick Delarbre
#La clé de l'admin
8 1 Yanick Delarbre
client$ .ssh/id_rsa.pub root@rhizome-fai.net:/tmp/nebula.pub
9 1 Yanick Delarbre
server# apt-get install gitolite -y
10 1 Yanick Delarbre
server# su - gitolite
11 1 Yanick Delarbre
#Initialisation du repository admin
12 1 Yanick Delarbre
gitolite@server$ gl-setup /tmp/nebula.pub
13 2 Yanick Delarbre
</pre>
14 1 Yanick Delarbre
15 2 Yanick Delarbre
h2. La configuration de gitolite
16 2 Yanick Delarbre
17 2 Yanick Delarbre
<pre>
18 1 Yanick Delarbre
client$ git clone gitolite@rhizome-fai.tetaneutral.net:gitolite-admin.git
19 1 Yanick Delarbre
client$ cd gitolite-admin
20 1 Yanick Delarbre
#Les clés des clients
21 1 Yanick Delarbre
client$ mv cle.pub key/
22 1 Yanick Delarbre
#La configuration de chaque repository
23 1 Yanick Delarbre
client$ vim conf/gitolite.conf 
24 1 Yanick Delarbre
        repo    gitolite-admin
25 1 Yanick Delarbre
                RW+     =   user
26 1 Yanick Delarbre
27 1 Yanick Delarbre
        repo    testing
28 1 Yanick Delarbre
                RW+     =   @all
29 1 Yanick Delarbre
30 1 Yanick Delarbre
        repo    agregation
31 1 Yanick Delarbre
                RW+     = user nebula jocelyn fernando
32 1 Yanick Delarbre
                R       = daemon
33 1 Yanick Delarbre
34 1 Yanick Delarbre
client$ git add conf/gitolite.conf key/*
35 1 Yanick Delarbre
client$ git commit -m "add repo agregation + git-daemon in R"
36 1 Yanick Delarbre
#Note: toutes la confiration s'applique grâce à un hook. Donc il suffit de "pusher" la configuration vers le serveur
37 1 Yanick Delarbre
client$ git push
38 1 Yanick Delarbre
39 2 Yanick Delarbre
</pre>
40 2 Yanick Delarbre
41 2 Yanick Delarbre
h2. Rendre le le(s) repository(s) public
42 2 Yanick Delarbre
43 2 Yanick Delarbre
<pre>
44 1 Yanick Delarbre
server# apt-get install git-daemon-run -y
45 1 Yanick Delarbre
server# vim /etc/init.d/git-daemon
46 1 Yanick Delarbre
</pre>
47 1 Yanick Delarbre
48 1 Yanick Delarbre
Le fichier git-daemon pour éviter d'utliser sv.
49 1 Yanick Delarbre
50 1 Yanick Delarbre
<pre>
51 1 Yanick Delarbre
#!/bin/sh
52 1 Yanick Delarbre
53 1 Yanick Delarbre
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:\
54 1 Yanick Delarbre
/usr/bin:/usr/lib/git-core
55 1 Yanick Delarbre
NAME=git-daemon
56 1 Yanick Delarbre
PIDFILE=/var/run/$NAME.pid
57 1 Yanick Delarbre
DESC="git daemon"
58 1 Yanick Delarbre
DAEMON=/usr/lib/git-core/git-daemon
59 1 Yanick Delarbre
DAEMON_OPTS="--base-path=/var/lib/gitolite/repositories --verbose \
60 1 Yanick Delarbre
--syslog --detach --pid-file=$PIDFILE --user=gitolite \
61 1 Yanick Delarbre
--group=nogroup --enable=receive-pack"
62 1 Yanick Delarbre
63 1 Yanick Delarbre
test -x $DAEMON || exit 0
64 1 Yanick Delarbre
65 1 Yanick Delarbre
[ -r /etc/default/git-daemon ] && . /etc/default/git-daemon
66 1 Yanick Delarbre
67 1 Yanick Delarbre
. /lib/lsb/init-functions
68 1 Yanick Delarbre
69 1 Yanick Delarbre
start_git() {
70 1 Yanick Delarbre
  start-stop-daemon --start --quiet --pidfile $PIDFILE \
71 1 Yanick Delarbre
    --startas $DAEMON -- $DAEMON_OPTS
72 1 Yanick Delarbre
}
73 1 Yanick Delarbre
74 1 Yanick Delarbre
stop_git() {
75 1 Yanick Delarbre
  start-stop-daemon --stop --quiet --pidfile $PIDFILE
76 1 Yanick Delarbre
  rm -f $PIDFILE
77 1 Yanick Delarbre
}
78 1 Yanick Delarbre
79 1 Yanick Delarbre
status_git() {
80 1 Yanick Delarbre
  start-stop-daemon --stop --test --quiet --pidfile $PIDFILE >/dev/null 2>&1
81 1 Yanick Delarbre
}
82 1 Yanick Delarbre
83 1 Yanick Delarbre
case "$1" in
84 1 Yanick Delarbre
  start)
85 1 Yanick Delarbre
  log_begin_msg "Starting $DESC"
86 1 Yanick Delarbre
  start_git
87 1 Yanick Delarbre
  log_end_msg 0
88 1 Yanick Delarbre
  ;;
89 1 Yanick Delarbre
  stop)
90 1 Yanick Delarbre
  log_begin_msg "Stopping $DESC"
91 1 Yanick Delarbre
  stop_git
92 1 Yanick Delarbre
  log_end_msg 0
93 1 Yanick Delarbre
  ;;
94 1 Yanick Delarbre
  status)
95 1 Yanick Delarbre
  log_begin_msg "Testing $DESC: "
96 1 Yanick Delarbre
  if status_git
97 1 Yanick Delarbre
  then
98 1 Yanick Delarbre
    log_success_msg "Running"
99 1 Yanick Delarbre
    exit 0
100 1 Yanick Delarbre
  else
101 1 Yanick Delarbre
    log_failure_msg "Not running"
102 1 Yanick Delarbre
    exit 1
103 1 Yanick Delarbre
fi
104 1 Yanick Delarbre
  ;;
105 1 Yanick Delarbre
  restart|force-reload)
106 1 Yanick Delarbre
  log_begin_msg "Restarting $DESC"
107 1 Yanick Delarbre
  stop_git
108 1 Yanick Delarbre
  sleep 1
109 1 Yanick Delarbre
  start_git
110 1 Yanick Delarbre
  log_end_msg 0
111 1 Yanick Delarbre
  ;;
112 1 Yanick Delarbre
  *)
113 1 Yanick Delarbre
  echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
114 1 Yanick Delarbre
  exit 1
115 1 Yanick Delarbre
  ;;
116 1 Yanick Delarbre
esac
117 1 Yanick Delarbre
118 1 Yanick Delarbre
exit 0
119 1 Yanick Delarbre
</pre>
120 1 Yanick Delarbre
121 2 Yanick Delarbre
Et enfin, rendre ce service "automatique":
122 1 Yanick Delarbre
<pre>
123 1 Yanick Delarbre
server# update-rc.d git-daemon default
124 2 Yanick Delarbre
</pre>
125 1 Yanick Delarbre
126 2 Yanick Delarbre
h2. Pour cloner le repository soit en public avec un utilisateur (dont la clé a déjà été copier vers le repository-admin)
127 2 Yanick Delarbre
128 2 Yanick Delarbre
<pre>
129 1 Yanick Delarbre
client_git_public$ git clone git://rhizome-fai.tetaneutral.net/agregation.git
130 1 Yanick Delarbre
client_git_user$ git clone gitolite@rhizome-fai.tetaneutral.net:agregation.git
131 1 Yanick Delarbre
132 1 Yanick Delarbre
</pre>
133 1 Yanick Delarbre
134 1 Yanick Delarbre
h2. Les sources
135 1 Yanick Delarbre
136 1 Yanick Delarbre
http://doc.ubuntu-fr.org/gitolite#rendre_un_depot_public
137 1 Yanick Delarbre
http://computercamp.cdwilson.us/git-gitolite-git-daemon-gitweb-setup-on-ubunt