============================================================= Installation de loggerhead & co sur une debian ============================================================= Variables ------------- :: bzr=/var/bzr repos=$bzr/repos Apache -------- - Groupe Apache:: groupadd bzr for i in sra mpa www-data; do gpasswd -a $i bzr done Repositories container creation -------------------------------- :: mkdir $bzr cd $bzr mkdir env repos python chown root:bzr env repos python chmod 755 env repoos python ln -sf /var/bzr/repos/ /bzr Idea ------- :: Repos/ rwxr-x--- root:bzr tri1/ rwxr-x--- tri1:bzr tri2/ rwxr-x--- tri2:bzr Fix repo rights ------------------ :: cd $bzr/repos for trigramme in *;do chown -Rf $trigramme:bzr $trigramme chmod -Rf 750 $trigramme done Add a developper repo ------------------------ Rely on ldap auth. for users creation:: mkdir $bzr/repos/$trigramme gpasswd -a $trigramme bzr chown -Rf $trigramme:bzr $trigramme chmod -Rf 750 $trigramme Install root repo ------------------------------------ Got a python bootstrapper and letz rule:: apt-get install build-essential m4 libtool pkg-config autoconf m4 gettext bzip2 cd $bzr wget http://hg.minitage.org/hg/minitage/shell/raw-file/tip/PyBootstrapper.sh bash ./PyBootstrapper.sh python python/bin/virtualenv --no-site-packages env source env/bin/activate # bootstrap, puis install en dev pour bzr-svn mkdir bzr.repos cd bzr.repos easy_install paramiko easy_install Pyrex easy_install bzr bzr branch lp:loggerhead cd $bzr/bzr.repos/loggerhead && easy_install . easy_install http://www.owlfish.com/software/simpleTAL/downloads/SimpleTAL-4.1.tar.gz easy_install Paste Add a cron job to reset rights -------------------------------- log as root:: crontab -e #and add * */15 * * * /var/bzr/bin/fix_rights.sh Add a basic init script to start loggerhead --------------------------------------------- :: #!/bin/sh # # Loggerhead start/stop script. host="bzr.makina-nantes.net" port="8443" prefix="/var/bzr" repos="$prefix/repos" log_folder="$prefix/var/log" start_cmd="$prefix/env/bin/serve-branches --port $port --host $host $repos --log-folder=$log_folder" pid_file="$prefix/var/run/loggerhead.pid" user="www-data" py="$prefix/env/bin/python" server_name="Loggerhead" start() { echo "Starting $server_name server" start-stop-daemon --start -c $user --quiet --background\ -p $pid_file -m --exec "$py" -- $start_cmd } stop() { echo "Stopping $server_name server" start-stop-daemon --stop --user $user \ -p $pid_file } case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop start ;; *) echo "usage: $0 start|stop|restart" exit 1 ;; esac #vim:set ft=bash: Add apache vhost ----------------- Add modrewrite and proxy:: a2enmod rewrite proxy proxy_http apt-get install libapache2-mod-proxy-html a2enmod proxy_html /etc/init.d/apache2 force-reload Add the vhost:: # /etc/apache2/sites-available/100-bzr ServerName bzr.makina-nantes.net ServerAlias bzr.makinanantes.net # Logs ErrorLog "|/usr/bin/cronolog /var/bzr/var/log/apache/%Y/%W/%d-apache_error.log" CustomLog "|/usr/bin/cronolog /var/bzr/var/log/apache/%Y/%W/%d-apache_access.log" combined DocumentRoot /var/bzr/htdocs Options Indexes ExecCGI IncludesNOEXEC FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order allow,deny Allow from all Options Indexes ExecCGI IncludesNOEXEC FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order allow,deny Allow from all # pas d'open proxy ProxyRequests off Order deny,allow Allow from all RewriteEngine on ProxyPass / http://bzr.makina-nantes.net:8443/ ProxyPassReverse / http://bzr.makina-nantes.net:8443/ SetOutputFilter proxy-html ProxyHTMLExtended On ProxyHTMLURLMap http://bzr.makina-nantes.net:8443/ http://bzr.makina-nantes.net/ Letz go ------------- :: a2ensite 100-bzr /etc/init.d/apache2 restart Scripts ------------ - ``$bzr/bin/add-dev.sh`` : add a dev (trigramme) - ``$bzr/bin/fix_rights.sh`` : reset rights on the repo Youhou --------- - Sur le reseau makina: http://bzr.makina-nantes.net