Projet

Général

Profil

L'installation de gitolite » Historique » Version 4

Jocelyn Dealande, 08/03/2013 12:43

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 4 Jocelyn Dealande
server# chmod +x /etc/init.d/git-daemon
47 1 Yanick Delarbre
</pre>
48 1 Yanick Delarbre
49 1 Yanick Delarbre
Le fichier git-daemon pour éviter d'utliser sv.
50 1 Yanick Delarbre
51 1 Yanick Delarbre
<pre>
52 1 Yanick Delarbre
#!/bin/sh
53 1 Yanick Delarbre
54 1 Yanick Delarbre
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:\
55 1 Yanick Delarbre
/usr/bin:/usr/lib/git-core
56 1 Yanick Delarbre
NAME=git-daemon
57 1 Yanick Delarbre
PIDFILE=/var/run/$NAME.pid
58 1 Yanick Delarbre
DESC="git daemon"
59 1 Yanick Delarbre
DAEMON=/usr/lib/git-core/git-daemon
60 1 Yanick Delarbre
DAEMON_OPTS="--base-path=/var/lib/gitolite/repositories --verbose \
61 1 Yanick Delarbre
--syslog --detach --pid-file=$PIDFILE --user=gitolite \
62 1 Yanick Delarbre
--group=nogroup --enable=receive-pack"
63 1 Yanick Delarbre
64 1 Yanick Delarbre
test -x $DAEMON || exit 0
65 1 Yanick Delarbre
66 1 Yanick Delarbre
[ -r /etc/default/git-daemon ] && . /etc/default/git-daemon
67 1 Yanick Delarbre
68 1 Yanick Delarbre
. /lib/lsb/init-functions
69 1 Yanick Delarbre
70 1 Yanick Delarbre
start_git() {
71 1 Yanick Delarbre
  start-stop-daemon --start --quiet --pidfile $PIDFILE \
72 1 Yanick Delarbre
    --startas $DAEMON -- $DAEMON_OPTS
73 1 Yanick Delarbre
}
74 1 Yanick Delarbre
75 1 Yanick Delarbre
stop_git() {
76 1 Yanick Delarbre
  start-stop-daemon --stop --quiet --pidfile $PIDFILE
77 1 Yanick Delarbre
  rm -f $PIDFILE
78 1 Yanick Delarbre
}
79 1 Yanick Delarbre
80 1 Yanick Delarbre
status_git() {
81 1 Yanick Delarbre
  start-stop-daemon --stop --test --quiet --pidfile $PIDFILE >/dev/null 2>&1
82 1 Yanick Delarbre
}
83 1 Yanick Delarbre
84 1 Yanick Delarbre
case "$1" in
85 1 Yanick Delarbre
  start)
86 1 Yanick Delarbre
  log_begin_msg "Starting $DESC"
87 1 Yanick Delarbre
  start_git
88 1 Yanick Delarbre
  log_end_msg 0
89 1 Yanick Delarbre
  ;;
90 1 Yanick Delarbre
  stop)
91 1 Yanick Delarbre
  log_begin_msg "Stopping $DESC"
92 1 Yanick Delarbre
  stop_git
93 1 Yanick Delarbre
  log_end_msg 0
94 1 Yanick Delarbre
  ;;
95 1 Yanick Delarbre
  status)
96 1 Yanick Delarbre
  log_begin_msg "Testing $DESC: "
97 1 Yanick Delarbre
  if status_git
98 1 Yanick Delarbre
  then
99 1 Yanick Delarbre
    log_success_msg "Running"
100 1 Yanick Delarbre
    exit 0
101 1 Yanick Delarbre
  else
102 1 Yanick Delarbre
    log_failure_msg "Not running"
103 1 Yanick Delarbre
    exit 1
104 1 Yanick Delarbre
fi
105 1 Yanick Delarbre
  ;;
106 1 Yanick Delarbre
  restart|force-reload)
107 1 Yanick Delarbre
  log_begin_msg "Restarting $DESC"
108 1 Yanick Delarbre
  stop_git
109 1 Yanick Delarbre
  sleep 1
110 1 Yanick Delarbre
  start_git
111 1 Yanick Delarbre
  log_end_msg 0
112 1 Yanick Delarbre
  ;;
113 1 Yanick Delarbre
  *)
114 1 Yanick Delarbre
  echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
115 1 Yanick Delarbre
  exit 1
116 1 Yanick Delarbre
  ;;
117 1 Yanick Delarbre
esac
118 1 Yanick Delarbre
119 1 Yanick Delarbre
exit 0
120 1 Yanick Delarbre
</pre>
121 1 Yanick Delarbre
122 2 Yanick Delarbre
Et enfin, rendre ce service "automatique":
123 1 Yanick Delarbre
<pre>
124 3 Jocelyn Dealande
server# update-rc.d git-daemon defaults
125 2 Yanick Delarbre
</pre>
126 1 Yanick Delarbre
127 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)
128 2 Yanick Delarbre
129 2 Yanick Delarbre
<pre>
130 1 Yanick Delarbre
client_git_public$ git clone git://rhizome-fai.tetaneutral.net/agregation.git
131 1 Yanick Delarbre
client_git_user$ git clone gitolite@rhizome-fai.tetaneutral.net:agregation.git
132 1 Yanick Delarbre
133 1 Yanick Delarbre
</pre>
134 1 Yanick Delarbre
135 1 Yanick Delarbre
h2. Les sources
136 1 Yanick Delarbre
137 1 Yanick Delarbre
http://doc.ubuntu-fr.org/gitolite#rendre_un_depot_public
138 1 Yanick Delarbre
http://computercamp.cdwilson.us/git-gitolite-git-daemon-gitweb-setup-on-ubunt