Le tutorial ci-dessous présente l'installation en local d'ADH5 sur un système GNU/Linux Debian Wheezy amd64.
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
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.
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 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 :
source .rvm/bin/rvm
pour bash ou zsh..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 :
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
$ 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
$ 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.
$ cd portail $ rails server
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
Allez sur l'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.