====== Installer ADH5 en local ====== Le tutorial ci-dessous présente l'installation en local d'ADH5 sur un système GNU/Linux Debian Wheezy amd64. ===== Permissions et packages ===== C'est plus facile d'installer ADH5 si vous utilisez sudo. Sur certains systèmes comme Ubuntu ou Mac OS X, vous utilisez déjà sudo. Sur Debian, # apt-get install sudo # usermod -aG sudo myuser Vous aurez aussi besoin d'installer les packages ci-dessous. # apt-get install git curl libxslt-dev libxml2-dev sqlite3 sqlite3 libsqlite3-dev libmysqlclient-dev libqt4-dev Puis sur Debian : # apt-get install libmagickwand-dev Sur Ubuntu : $ sudo apt-get install libmagick++-dev libmagickcore-dev ===== Récupérer le code source ===== Le code source se trouve sur le GitLab MiNET. Il faudra //a priori// vous accorder les droits sur le projet afin de pouvoir travailler dessus. ===== Installer RVM ===== RVM permet de gérer son environnement ruby. Vous pouvez par exemple avoir plusieurs versions de ruby. C'est un peu l'équivalent des virtualenv python mais en mieux :D. Je vous incite fortement à installer RVM car vous avez sûrement des programmes qui utilisent une autre version de ruby déjà installés sur votre système (même si vous ne le savez pas toujours). ADH5 a de fortes chances d'utiliser une autre version. Pour installer RVM, les instructions à jour sont disponibles sur le [[https://rvm.io/rvm/install|site web officiel]]. Pour Debian, à l'heure ou j'écris cette page, voici comment installer rvm + dernière version stable de ruby. $ curl -L https://get.rvm.io | bash -s stable --ruby Vous devez lancer RVM dans les terminaux qui vont utiliser ruby. Pour cela 2 solutions : * Configurer uniquement la session courante (à la export) ''source .rvm/bin/rvm'' pour bash ou zsh. * Modifier votre ''.bashrc'' ou autre pour y mettre la commande ci-dessus afin d'appliquer le changement automatiquement. Vous pouvez vérifier que vous avez bien la dernière version stable de ruby chargée. $ ruby -v Remarque, ADH5 n'utilise plus la dernière version mais la 2.0 Pour l'installer, utiliser les commandes suivantes : * rvm install ruby-2.0 * cd /chemin/vers/votre/depot/adh5 * rvm use ruby-2.0 * rvm gemset create adh5 * rvm use 2.0@adh5 * ruby -v Remarque: La dernière commande permet de charger automatiquement la bonne version de ruby à chaque fois que vous êtes dans le dossier /chemin/vers/votre/depot/adh5 ===== Configurer adh5 ===== $ cd adh5/frontend $ bundle # installation des dépendences ruby appelées gem Exécutez maintenant les migrations (installation du schéma de db) et les seeds (données initiales dans la base de données) $ rake db:setup ===== Lancer le frontend ===== $ cd frontend $ rails server Rails vous donnera alors l'URL à utiliser pour accéder l'interface. Note : Par défault, ADH5 bind l'IP local, si vous utilisez par exemple une VM vous avez peut-être envie de spécifier l'IP à binder, pour ce faire ''rails server -b monip''. C'est bien beau mais maintenant il faut se créer un compte admin (il y a déjà l'utilisateur //test// avec le mot de passe //test//, mais vous pouvez créer votre propre utilisateur) : $ rails console > u = Utilisateur.new(nom: 'Test', access: 1340, email: 'test@minet.net', login: 'test', password_hash: "test".to_sha1) > u.save Vous devriez maintenant pouvoir vous connecter et avoir accès à tout avec le login //test// et mot de passe //test//. Par défaut, nous n'avons pas de données mais vous pouvez demander au président actuel la base de données de dev ou vous pouvez ajouter des adhérents si vous voulez. Attention à ne pas ajouter de switchs ou ports afin de ne pas perturber le service en production. ===== Lancer le portail ===== $ cd portail $ rails server ===== Lancer l'API ===== ADH5 possède une API RESTful utilisée par les serveurs dhcp et radius pour obtenir des informations essentielles à partir d'adh5 via HTTP (et non directement à partir de la base de données). Avant, on utilisait aussi l'API pour le serveur DNS afin de donner des entrées reverse DNS à nos adhérents, mais nous n'utilisons plus cette fonctionnalité. $ cd api $ ruby boot.rb ===== Que faire si cette page n'est plus à jour ? ===== Allez sur l'[[http://ci.minet.net:8080/|interface jenkins]] (derrière le vpn, vous aurez aussi besoin d'un compte sur jenkins) et regardez les paramètres des tâches pour déployer les versions de dév et de prod.