README.markdown
changeset 13 cd3db02046b1
parent 12 142528c37705
child 22 9f8db096d8f7
equal deleted inserted replaced
12:142528c37705 13:cd3db02046b1
     3 ## contenu du projet
     3 ## contenu du projet
     4 
     4 
     5 ### virtualenv
     5 ### virtualenv
     6 
     6 
     7 Ce répertoire contient toutes les ressources python utilisées pour construire les environements virtuels ([virtualenv](http://www.virtualenv.org)).
     7 Ce répertoire contient toutes les ressources python utilisées pour construire les environements virtuels ([virtualenv](http://www.virtualenv.org)).
     8 Il y a à la fois les distributions des librairies utilisées, ainsi que des script de création des environerments virtuels.
     8 Il y à la fois les distributions des librairies utilisées, ainsi que des scripts de création des environements virtuels.
     9 
     9 
    10 ### sbin
    10 ### sbin
    11 
    11 
    12 Contient les script de synchronisation et de publication. Ces script sont des script [Fabric](http://fabfile.org)
    12 Contient les scripts de synchronisation et de publication. Ces script sont des script [Fabric](http://fabfile.org).
    13 
    13 
    14 ### web
    14 ### web
    15 
    15 
    16 Contient le contenu effectif à publier sur le serveur web.
    16 Contient le contenu effectif à publier sur le serveur web.
    17 Il est divisé en 2 partie:
    17 Il est divisé en 2 partie:
    18   - un répertoire "static", contenant les fichiers statiques du site.
    18   - un répertoire "static", contenant les fichiers statiques du site.
    19   - un répertoire "theend" contenant la partie dynamique du site.
    19   - un répertoire "theend" contenant la partie dynamique du site.
    20 
    20 
    21 Le répertoire statique doit être servi par un serveur web classique (apache, nginx,...). Le répertoire dynamique doit être servi par un serveur applicatif python.
    21 Le répertoire statique doit être servi par un serveur web classique (apache, nginx,...). Le répertoire dynamique doit être servi par un serveur applicatif python.
    22 
    22 
    23 Nous recommandont l'utilisation de serveur applicatif supprtant WSGI, comme [uWSGI](http://projects.unbit.it/uwsgi/).
    23 Nous recommandont l'utilisation de serveur applicatif supportant WSGI, comme [uWSGI](http://projects.unbit.it/uwsgi/).
    24 
    24 
    25 
    25 
    26 ## Procédure de déploiement:
    26 ## Procédure de déploiement:
    27 
    27 
    28 Le processus de déploiement se base sur la notion de version/tag.
    28 Le processus de déploiement se base sur la notion de version/tag.
    43 
    43 
    44 3- Synchronisation des fichiers statiques et dynamiques sur le serveur distant
    44 3- Synchronisation des fichiers statiques et dynamiques sur le serveur distant
    45     cd sbin/sync
    45     cd sbin/sync
    46     fab sync_web:<Version>
    46     fab sync_web:<Version>
    47 
    47 
    48 Cette commande va créer une fichier de configuration minimal sur le serveur web à partir des informations renseigné dans le fichier config.py de l'étape précédente.
    48 Cette commande va créer un fichier de configuration minimal sur le serveur web à partir des informations renseignées dans le fichier config.py de l'étape précédente.
    49 
    49 
    50 4- Sur le serveur distant, édition du fichier de configuration `<remote_web_path>/theend/config.py`.
    50 4- Sur le serveur distant:
    51 configuration du serveur web, du process uwsgi et de leur communication. Il est recommander d'avoir un outils de monitoring pour surveiller l'instance uwsgi. [supervisor](http://supervisord.org/) est un bon candidat pour ce role.
    51 * édition du fichier de configuration `<remote_web_path>/theend/config.py`.
    52 Voici un exemple de fichier de configuration:
    52 * configuration du serveur web
       
    53 * du process uwsgi et de leur communication.
       
    54 
       
    55 Il est recommandé d'avoir un outil de monitoring pour surveiller l'instance uwsgi. [supervisor](http://supervisord.org/) est un bon candidat pour ce role.
       
    56 Voici un exemple de fichier de configuration `supervisor`:
    53 
    57 
    54     [program:theend]
    58     [program:theend]
    55     command=<path to virtualenv>/bin/uwsgi --yaml /etc/uwsgi/theend.yml
    59     command=<path to virtualenv>/bin/uwsgi --yaml /etc/uwsgi/theend.yml
    56     directory=<path to web folder>
    60     directory=<path to web folder>
    57     user=www-data
    61     user=www-data
    77 
    81 
    78 ## Procédure de mise à jour
    82 ## Procédure de mise à jour
    79 
    83 
    80 La mise à jour du site se fait ensuite par la commande `sync_web` du script de synchronisation pour des changement dans la partie web et `create_virtualenv` pour les changements de resource python.
    84 La mise à jour du site se fait ensuite par la commande `sync_web` du script de synchronisation pour des changement dans la partie web et `create_virtualenv` pour les changements de resource python.
    81 
    85 
    82 À noter que le commande `update_lib` permet de mettre à jour les packages python individuellement:
    86 À noter que la commande `update_lib` permet de mettre à jour les packages python individuellement:
       
    87 
    83     fab update_lib:<version>,<package>
    88     fab update_lib:<version>,<package>
    84 où package est l'un des intitulé de package contenu dans le fichier `virtualenv/web/res/res_create_env.py`.
    89 où package est l'un des intitulés de package contenus dans le fichier `virtualenv/web/res/res_create_env.py`.