technique:adminserv:sites:update_from_archive

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.

Note:

À ce jour, les sites de Picasoft tournent sur pica01 et pica03. On peut le vérifier sur ces graphes.

On commence par transférer ces fichiers dans sur pica01 ou pica03. Supposons qu’ils soient situés en local, dans le dossier ~/website :

snippet.bash
rsync -a ~/site <login>@pica01.picasoft.net:/tmp

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

Attention:

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.

Note:

En théorie, un script 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.

Note:

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"

Attention:

Cette opération écrase les fichiers existants.

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.

Attention:

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.

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]

Note:

Le [complement] est optionnel ; dans la plupart des cas, on remplace tout le site (radio, site principal…).

  • technique/adminserv/sites/update_from_archive.txt
  • de crozatst