technique:adminserv:sites:update_from_archive

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:adminserv:sites:update_from_archive [2022/09/26 13:50] crozatsttechnique:adminserv:sites:update_from_archive [2022/09/26 13:55] (Version actuelle) crozatst
Ligne 1: Ligne 1:
 +{{indexmenu_n>3}}
 +# Modifier un site web
  
 +La mise à jour de tous les sites Picasoft termine par la même étape : on a des fichiers locaux, il faut la transférer sur le serveur web.
 +
 +<bootnote>À ce jour, les sites de Picasoft tournent sur `pica01` et `pica03`. On peut le vérifier sur [[technique:graph_services|ces graphes]].</bootnote>
 +
 +On commence par transférer ces fichiers dans sur `pica01` ou `pica03`. Supposons qu'ils soient situés en local, dans le dossier `~/website` :
 +
 +```bash
 +rsync -a ~/site <login>@pica01.picasoft.net:/tmp
 +```
 +
 +## Cas de Scenari
 +
 +Scenari génère systématiquement une archive ZIP. Une fois transférée sur `pica01` ou `pica03`, il faut l'extraire.
 +
 +```
 +cd /tmp
 +unzip <site>.zip -d site
 +```
 +
 +<bootnote warning>Si on se contentait d'extraire `<site>.zip`, tous les dossiers qu'il contient se retrouveraient dans `/tmp`. Il est plus pratique de les extraire dans un dossier à part, ici `site`.</bootnote>
 +
 +<bootnote>En théorie, un [script](https://gitlab.utc.fr/picasoft/projets/website) existe pour faire le transfert et la mise à jour automatiquement ; il est cassé/obsolète mais peut être amélioré pour accélérer de nouveau le processus.</bootnote>
 +
 +<bootnote>
 +Dans les items de publication Scenari `.website` un commentaire propose un squelette de commande bash à finir de configurer (il suffit de changer l'user (ici crozatst) et la machine (ici pica01), comme par exemple 
 +```
 +# Pour publier : 
 +# - générer
 +# - télécharger le ZIP du site généré dans /tmp
 +# - lancer (avec son user pica01 pour le rsync et ssh) :
 +cd /tmp &&
 +rm -rf picahome &&
 +unzip home_gen_tileSite.zip -d picahome && 
 +rsync -va picahome/* crozatst@pica01.picasoft.net:/tmp/website &&
 +ssh  crozatst@pica01.picasoft.net "docker cp /tmp/website/. website:/usr/share/nginx/html"
 +```
 +</bootnote>
 +
 +## Copier les fichiers dans le conteneur
 +
 +<bootnote warning>Cette opération écrase les fichiers existants.</bootnote>
 +
 +Trouver le nom du conteneur concerné. Un `docker ps` peut aider.
 +La racine de tous les fichiers servis par les sites de Picasoft se trouve à `/usr/share/nginx/html` dans les conteneurs. 
 +
 +Il suffit alors de lancer un simple `docker cp`.
 +
 +<bootnote warning>L'arborescence peut avoir son importance, en particulier dans le cas des sites générés par Scenari. Par exemple, un module de `doc.picasoft.net` sera à remplacer dans `/usr/share/nginx/html/modules/<nom_module>`, et non à la racine ! Aussi, une recette de `culture.picasoft.net` sera à ajouter dans `/usr/share/nginx/html/recipes`, et pas à la racine.</bootnote>
 +
 +Une fois que vous avez identifié le chemin où remplacer les fichiers **à l'intérieur du conteneur**, il suffit de les copier :
 +
 +```
 +cd /tmp/site
 +docker cp . <nom_conteneur>:/usr/share/nginx/html/[complement]
 +```
 +
 +<bootnote>
 +Le `[complement]` est optionnel ; dans la plupart des cas, on remplace tout le site (radio, site principal...).
 +</bootnote>