GIT-client in Plesk 11.5

Veel klanten van onze managed diensten gebruiken graag GIT om het versiebeheer van websites mee uit te voeren. Standaard is het gebruik van de GIT-client niet mogelijk in een Plesk omgeving (laatste aanpassing: 15-09-2014).

Het is echter wel mogelijk om de GIT-client toe te voegen aan de chroot omgeving van Plesk. Het is dan mogelijk voor alle websites waar shell toegang op “/bin/bash (chrooted)” staat via de shell GIT aan te roepen.

Het volgen van de onderstaande stappen is op eigen risico.

Uitgangspunten:

Deze procedure is goed getest, echter om deze goed werkend te krijgen gaan we van de volgende zaken uit:

  • Je maakt gebruik van Plesk 11.5 op RHEL/CENTOS 6 (64-bit). Met wat kleine wijzigingen zou het ook mogelijk moeten zijn om dit op andere Linux “smaakjes” werkend te krijgen
  • Voor extra veiligheid gebruiken we de restricted chroot shell voor de website
  • Je hebt het chroot_update.sh script van http://kb.parallels.com/en/115842
  • Je hebt volledige root toegang
  • Er wordt gebruik gemaakt van GIT over HTTP(S). Wij hebben het getest met de dienst van BitBucket, maar elke andere dienst zou ook moeten werken

GIT installeren:

Eerst installeren we de GIT-client:

yum install git

Vervolgens kopiëren we alle mappen/bestanden naar de standaard chroot omgeving van Plesk:

mkdir -p /var/www/vhosts/chroot/usr/share/git-core/
cp -ar /usr/share/git-core/templates /var/www/vhosts/chroot/usr/share/git-core/
cp -ar /usr/libexec/git-core /var/www/vhosts/chroot/usr/libexec/
cp -L /usr/lib64/libsoftokn3.so /var/www/vhosts/chroot/lib64/
cp -L /usr/lib64/libnsspem.so /var/www/vhosts/chroot/lib64/
cp -L /usr/lib64/libsqlite3.so.0 /var/www/vhosts/chroot/lib64/
cp -a /etc/resolv.conf /var/www/vhosts/chroot/etc/
cp -r /etc/pki /var/www/vhosts/chroot/etc
./chroot_update.sh --add /bin/basename
./chroot_update.sh --add /bin/sed
./chroot_update.sh --add /bin/uname
./chroot_update.sh --add /usr/bin/tr
./chroot_update.sh --add /usr/bin/git
./chroot_update.sh --add /usr/bin/xmlwf
./chroot_update.sh --devices /dev/urandom

Als alle bovenstaande stappen goed zijn gegaan, updaten we de chroot omgeving van de individuele websites:

./chroot_update.sh --apply all

Hierna kan je inloggen op de chroot omgeving van het webhosting pakket en kan je een checkout doen op een GIT-repo:

git clone https://<gebruiker>:<wachtwoord>@bitbucket.org/<repo>

Mocht je onderstaande melding krijgen dan is de kans groot dat de GIT-client het SSL-certificaat van de dbt. GIT-server niet kan verifiëren:

error: while accessing https://<gebruiker>:<wachtwoord>@bitbucket.org/xxxxxx/info/refs fatal: HTTP request failed

Dit kan je oplossen door voordat je de GIT-client aanroept het volgende commando uit te voeren:

export GIT_SSL_NO_VERIFY=true