Mettre en place les dépôts mercurial pour le serveur
Ça semble en place et fonctionnel ; quelques ajustements à faire avec l'utilisation, sans doute. — Zatalyz 2015/10/24 14:20
Description
Un dépôt pour le code, et un dépôt pour les datas, il est nécessaire de faire un contrôle d'accès. Basé sur notre annuaire LDAP.
SSH peut être lié à LDAP, et permettre une authentification et une gestion des droits basée sur les groupes, ou sur des ACL si on utilise les droits sur les fichiers.
Qui travaille dessus ?
Compétences demandées
* Administration linux
Difficulté estimée ou temps restant à y passer
Tâches liées
Commentaires
Le serveur de de test en installé, on va virtualiser le système pour permettre un transfert aisé. Puis juste un apt-get install à faire pour mercurial.
Les étapes suivies seront les suivantes :
- Mettre en place un dépôt mono-utilisateur (tester accès web éventuellement) ;
- Mettre en place plusieurs dépôts et vérifier les accès ;
- Mettre en place d'autres utilisateurs et tester les commits/push/pull en groupe, sur différents dépôts ;
- Installer le CMS de gestion avec interface web (SCM Manager) sauf si d'autres perspectives web directes sont envisageables pour interfacer avec LDAP ;
- Installer le plugin LDAP du CMS ou le plugin direct pour Mercurial et tester avec nos comptes LDAP.
mise en place
Installé avec cette méthode : https://bitbucket.org/sdorra/scm-manager/wiki/RPM%20and%20DEB%20packages puis apt-get install default-jre
Faut tester :) :
Changé le port dans /etc/default/scm-server : http://37.187.121.150/scm/
Installé le plugin ldap et essai de config : pb de connexion tls à résoudre
Installé mercurial et configuré scm pour l'utiliser
Créé une partition pour /home et une pour les dépôts (/var/lib/scm/repository de mémoire, à vérifier)
Cloné deux dépöts : ryzomcore et liria
Création d'une entrée DNS : depots.khaganat.net
Il faudrait aussi installer le https sur ce serveur, même avec un certificat auto-signé.
pour cacher les mots de passes
Deux solutions : utiliser TLS ou faire un VPN. La première solution est plus joli, c'est ce qu'il faut faire. La seconde est plus bricolé, mais c'est ce que je sais faire, ça ira plus vite. Je commence donc par ça.
Création d'un serveur VPN sur vpsweb
apt-get update apt-get install openvpn easy-rsa cp -rp /usr/share/easy-rsa /etc/openvpn cd /etc/openvpn/easy-rsa/
Modif de vars
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="FR" export KEY_PROVINCE="NPC" export KEY_CITY="Lilles" export KEY_ORG="khanat@khaganat.org" export KEY_EMAIL="khanat@khaganat.org" export KEY_OU="TeamServeur"
Création de l'autorité de certification
. ./vars ./clean-all ./build-ca
Config du serveur
root@vps155855:/etc/openvpn/easy-rsa# ./build-key-server vpsweb root@vps155855:/etc/openvpn/easy-rsa# cp keys/ca.crt keys/vpsweb.key keys/vpsweb.crt .. root@vps155855:/etc/openvpn/easy-rsa# ./build-dh root@vps155855:/etc/openvpn/easy-rsa# cp keys/dh2048.pem ..
config :
;mute 20 port 1194 proto udp dev tun ca ca.crt cert vpsweb.crt #crl-verify /etc/openvpn/serveur/crl.pem key vpsweb.key dh dh2048.pem server 10.10.100.0 255.255.255.0 ifconfig-pool-persist ipp.txt #client-config-dir ccd client-to-client keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log verb 3
Puis redémarrage d'openvpn.
Exemple de config d'un client
D'abord faire sa clé sur le serveur et la déplacer sur le client par ssh : ./build-key nomduclient, dans easy-rsa
client dev tun proto udp remote vpsweb.khaganat.net 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key comp-lzo verb 3