- Modifié
En cours d'installation de mon nouveau serveur, j'ai dû commencer une migration de mes outils vers mon nouveau serveur.
J'utilisais ratticDB comme gestionnaire de mot de passe et ai eu pas mal de difficulté à le faire remarcher.
Ce tutoriel sera donc un premier tuto sur comment réussir à installer ratticDB.
Dans ce chapitre, je ne traiterais pas du chiffrement de la machine, même si celle-ci est vivement recommandée. Je ne traiterais pas non plus la sécurité (pour ma part, je coupe tout accès y compris ssh en dehors du réseau local).
Place au tutoriel!
Mais avant tout, qu'est-ce que ratticDB ?
RatticDB est un gestionnaire de mot de passe plutôt bien foutu avec des groupes, des partages de mot de passe, la possibilité d'ajouter des clefs ssh et les actions sont loggées.
Si vous voulez en savoir plus, je vous invite à aller sur http://rattic.org/
ATTENTION : le projet RatticDB ne semble pas maintenu, certains fork ont débuté, mais je suis resté sur la version principale de Rattic.
Au niveau de ma configuration, il s'agit d'une machine virtuelle proxmox (en ct) sous Debian 8.
Cette vm est uniquement dédiée à RatticDB pour des raisons de sécurité
Le tutoriel a été réalisé le 04/08/2016
Étape 1 : Mise à jour du serveur et installation des multiples dépendances.
# je réalise cette étape, car par défaut sur mon ct la locale c.UTF8 n'est pas installée, ce qui peut provoquer des souci lors de configurations et ici au démarrage du script
Étape 2 : récupération du dépôt git et installation des prérequis au lancement
## Les fichiers de configurations proposés comprennent déjà ce répertoire
## Cela respecte les normes de nommage que j'ai pu utiliser en entreprise
## Lors de ma première installation, ce chemin était encore écrit en dur à certains endroits du code en plus de la configuration, changer ce chemin pouvait provoquer des bugs
Étape 3 : Créer le compte sql et la base et associer les privilèges adéquats.
Étape 4 : Changer la configuration pour qu’elle corresponde au serveur (part 1)
Créez le fichier de configuration spécifique (attention le nom est important)

Étape 8 : Création d'un compte de démonstration
# Password : rattic
Étape 9 : Configurer apache pour rediriger le port 80 en https
Étape 10 : Configurer apache pour rediriger le port 443 vers l’application
#Vous aurez préalablement déposé vos clefs ssh au bon emplacement
# Si vous installez une version trop ancienne ou une des versions récentes mais ne marchant pas (comme celle des dépôts), vous risquez de bloquer pendant des heures dessus (pas de documentation que de l’expérimentation). Nous installons donc une version spécifique de mod_wsgi
Étape 12 : Activer les modules, le site et redémarrer apache
Et voilà, vous n'avez plus qu'a accéder à votre site.
Pensez à changer l'administrateur

Cas d'erreurs connus :
SOUTH_MIGRATION_MODULES
PS Le tutoriel doit être revu graphiquement. Aussi, même si ce tutoriel est plutôt simple, en raison du manque de réponse aux tickets et de la date de la dernière version, aucun tutoriel sur internet ne fonctionnait, voila pourquoi je me suis permis de proposer le mien ici
PPS : il s'agit ici de mon premier tutoriel que je publie, n'hésitez pas à faire des retours
J'utilisais ratticDB comme gestionnaire de mot de passe et ai eu pas mal de difficulté à le faire remarcher.
Ce tutoriel sera donc un premier tuto sur comment réussir à installer ratticDB.
Dans ce chapitre, je ne traiterais pas du chiffrement de la machine, même si celle-ci est vivement recommandée. Je ne traiterais pas non plus la sécurité (pour ma part, je coupe tout accès y compris ssh en dehors du réseau local).
Place au tutoriel!
Mais avant tout, qu'est-ce que ratticDB ?
RatticDB est un gestionnaire de mot de passe plutôt bien foutu avec des groupes, des partages de mot de passe, la possibilité d'ajouter des clefs ssh et les actions sont loggées.
Si vous voulez en savoir plus, je vous invite à aller sur http://rattic.org/
ATTENTION : le projet RatticDB ne semble pas maintenu, certains fork ont débuté, mais je suis resté sur la version principale de Rattic.
Au niveau de ma configuration, il s'agit d'une machine virtuelle proxmox (en ct) sous Debian 8.
Cette vm est uniquement dédiée à RatticDB pour des raisons de sécurité
Le tutoriel a été réalisé le 04/08/2016
Étape 1 : Mise à jour du serveur et installation des multiples dépendances.
apt-get update && apt-get upgrade
apt-get install apache2 php5 git gcc mysql-server python-setuptools yum gcc openssl libxml2 python-dev libxml2-dev libxslt1-dev zlib1g-dev libldap2-dev python-ldap python-mysqldb gettext apache2 libmysqlclient-dev libsasl2-dev python-dev libldap2-dev libssl-dev nano pyflakes
easy_install pip
dpkg-reconfigure locales
#L'installation de pip par easy install plutôt que par apt-get nous permet d'avoir une version qui gère les différentes dépendances dans le fichier de "requirement"# je réalise cette étape, car par défaut sur mon ct la locale c.UTF8 n'est pas installée, ce qui peut provoquer des souci lors de configurations et ici au démarrage du script
Étape 2 : récupération du dépôt git et installation des prérequis au lancement
cd /opt
mkdir apps
cd apps
git clone https://github.com/tildaslash/RatticWeb.git
cd RatticWeb/
/usr/local/bin/pip install -r requirements-mysql.txt -r requirements-dev.txt
# Ici, je garde la nommenclature /opt/apps/NomAppli pour 3 raisons :## Les fichiers de configurations proposés comprennent déjà ce répertoire
## Cela respecte les normes de nommage que j'ai pu utiliser en entreprise
## Lors de ma première installation, ce chemin était encore écrit en dur à certains endroits du code en plus de la configuration, changer ce chemin pouvait provoquer des bugs
Étape 3 : Créer le compte sql et la base et associer les privilèges adéquats.
mysql -u root -p
CREATE DATABASE rattic;
CREATE DATABASE test_rattic;
CREATE USER 'rattic'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
GRANT USAGE ON *.* TO 'rattic'@'localhost';
GRANT ALL PRIVILEGES ON rattic.* TO 'rattic'@'localhost';
GRANT ALL PRIVILEGES ON test_rattic.* TO 'rattic'@'localhost';
FLUSH PRIVILEGES;
exit
# la base de données test_rattic peut servir en cas de lancement de leur outil de testÉtape 4 : Changer la configuration pour qu’elle corresponde au serveur (part 1)
Créez le fichier de configuration spécifique (attention le nom est important)
nano conf/local.cfg
[ratticweb]
debug = False
secretkey = maClefSecrete
hostname = votreHostname.daccess.org
[filepaths]
static = /opt/apps/RatticWeb/static
[database]
engine = django.db.backends.mysql
name = rattic
user = rattic
password = votre_mot_de_passe
host = localhost
port = 3306
Étape 5 : Changer la configuration pour qu’elle corresponde au serveur (part 2)nano conf/defaults.cfg
timezone = Europe/Paris
passwordexpirydays = 365
hostname = votreHostname.daccess.org
Étape 6 : Initialiser la bdd et les fichiers statiques cd /opt/apps/RatticWeb/
./manage.py syncdb --noinput
# en cas d'erreur cf cas d'erreurs connus
./manage.py migrate --all
./manage.py compilemessages
mkdir static
./manage.py collectstatic -c --noinput
erreur courante :Étape 8 : Création d'un compte de démonstration
./manage.py demosetup
# User : admin# Password : rattic
Étape 9 : Configurer apache pour rediriger le port 80 en https
nano /etc/apache2/sites-available/000-default.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName votreHostname.daccess.org
ServerAlias votreHostname.daccess.org
Redirect permanent / https://votreHostname.daccess.org/
#ATTENTION, le / à la fin est très important
</VirtualHost>
Étape 10 : Configurer apache pour rediriger le port 443 vers l’application
#Vous aurez préalablement déposé vos clefs ssh au bon emplacement
nano /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@votreHostname.daccess.org
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/2_passwd.votreHostname.daccess.org.crt
SSLCertificateKeyFile /etc/ssl/private/passwd.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
Alias /robots.txt /opt/apps/RatticWeb/static/robots.txt
Alias /favicon.ico /opt/apps/RatticWeb/static/favicon.ico
AliasMatch ^/([^/]*\.css) /opt/apps/RatticWeb/static/styles/$1
Alias /media/ /opt/apps/RatticWeb/media/
Alias /static/ /opt/apps/RatticWeb/static/
<Directory /opt/apps/RatticWeb/static>
Require all granted
</Directory>
<Directory /opt/apps/RatticWeb/media>
Require all granted
</Directory>
WSGIScriptAlias / /opt/apps/RatticWeb/ratticweb/wsgi.py
WSGIPassAuthorization On
WSGIDaemonProcess rattic processes=2 threads=25 home=/opt/apps/RatticWeb/ python-path=/opt/apps/RatticWeb display-name=%{GROUP}
WSGIProcessGroup rattic
<Directory /opt/apps/RatticWeb/ratticweb>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
</IfModule>
Étape 11 : Installer la bonne version de mod_wsgi# Si vous installez une version trop ancienne ou une des versions récentes mais ne marchant pas (comme celle des dépôts), vous risquez de bloquer pendant des heures dessus (pas de documentation que de l’expérimentation). Nous installons donc une version spécifique de mod_wsgi
mkdir ~/sources
cd ~/sources
wget https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.5.2
tar xvfz 4.5.2
apt-get install python-dev apache2-prefork-dev
cd mod_wsgi-4.5.2/
./configure make
make install
Étape 12 : Activer les modules, le site et redémarrer apache
a2enmod ssl
a2enmod wsgi
a2enmod rewrite
a2ensite default-ssl
service apache2 restart
Et voilà, vous n'avez plus qu'a accéder à votre site.
Pensez à changer l'administrateur

Cas d'erreurs connus :
SOUTH_MIGRATION_MODULES
cd /usr/local/lib/python2.7/dist-packages
rm -rf kombu/transport/django/migrations djcelery/migrations
mv kombu/transport/django/south_migrations kombu/transport/django/migrations
mv djcelery/south_migrations djcelery/migrations
PS Le tutoriel doit être revu graphiquement. Aussi, même si ce tutoriel est plutôt simple, en raison du manque de réponse aux tickets et de la date de la dernière version, aucun tutoriel sur internet ne fonctionnait, voila pourquoi je me suis permis de proposer le mien ici
PPS : il s'agit ici de mon premier tutoriel que je publie, n'hésitez pas à faire des retours
