Veel klanten van onze managed hosting 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:

  • U 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.
  • U hebt het chroot_update.sh script van http://kb.parallels.com/en/115842
  • U hebt volledige root toegang.
  • Er wordt gebruikgemaakt 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 kunt u inloggen op de chroot omgeving van het webhosting pakket en kunt u een check-out doen op een GIT-repo:

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

Mocht u 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 kunt u oplossen door voordat u de GIT-client aanroept het volgende commando uit te voeren:

export GIT_SSL_NO_VERIFY=true