gestioCOF/provisioning/bootstrap.sh
Basile Clement 1bd92f7ff7 Ajoute un environnement de développement
Ce commit ajoute une configuration Vagrant permettant d'avoir un
environnement de développement facile à installer et réutilisable (cf
README.md).

En particulier :

 - Vagrantfile est un fichier qui décrit une machine virtuelle Vagrant.
   La configuration est assez proche des défauts, et n'introduit que
   deux différences : les ports 8000 et 80 sont bindés sur les ports
   8000 et 8080 (respectivement) sur la machine hôte, et le script
   `provisioning/bootstrap.sh` est utilisé pour configurer une nouvelle
   machine virtuelle.

 - provisioning/bootstrap.sh est un script shell qui s'occupe
   d'installer les paquets nécessaire et de configurer la machine
   virtuelle pour que GestioCOF fonctionne.

 - cof/settings_dev.py est un fichier de configuration minimal
   permettant de faire fonctionner GestioCOF, configuré pour être
   utilisé avec Vagrant mais facilement adaptable.
2016-05-26 20:52:03 +02:00

48 lines
1.7 KiB
Bash

#!/bin/sh
# Configuration de la base de données. Le mot de passe est constant car c'est
# pour une installation de dév locale qui ne sera accessible que depuis la
# machine virtuelle.
DBUSER="cof_gestion"
DBNAME="cof_gestion"
DBPASSWD="4KZt3nGPLVeWSvtBZPSM3fSzXpzEU4"
# Installation de paquets utiles
apt-get update && apt-get install -y mercurial python-pip python-dev libmysqlclient-dev
# Configuration et installation de mysql. Le mot de passe root est le même que
# le mot de passe pour l'utilisateur local - pour rappel, ceci est une instance
# locale de développement.
echo "mysql-server mysql-server/root_password password $DBPASSWD" | debconf-set-selections
echo "mysql-server mysql-server/root_password_again password $DBPASSWD" | debconf-set-selections
apt-get install -y mysql-server
mysql -uroot -p$DBPASSWD -e "CREATE DATABASE $DBNAME; GRANT ALL PRIVILEGES ON $DBNAME.* TO '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASSWD'"
# Mise en place du .bash_profile pour tout configurer lors du `vagrant ssh`
cat > ~vagrant/.bash_profile <<EOF
# On utilise la version de développement de GestioCOF
export DJANGO_SETTINGS_MODULE='cof.settings_dev'
# Identifiants MySQL
export DBUSER="$DBUSER"
export DBNAME="$DBNAME"
export DBPASSWD="$DBPASSWD"
# Permet d'utiliser les utilitaires pythons locaux
export PATH="\$PATH:\$HOME/.local/bin"
# On va dans /vagrant où se trouve le code de gestioCOF
cd /vagrant
EOF
chown vagrant: ~vagrant/.bash_profile
# On va dans /vagrant où se trouve gestioCOF
cd /vagrant
# Installation des dépendances python
sudo -H -u vagrant pip install --user -r requirements.txt -r requirements-devel.txt
# Préparation de Django
sudo -H -u vagrant DBUSER=$DBUSER DBNAME=$DBNAME DBPASSWD=$DBPASSWD python manage.py migrate