admin:services:paste.chapril.org
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
admin:chatons:paste.chapril.org [2019/09/13 15:57] – [Rapport d'activité] dclermonte | admin:services:paste.chapril.org [2024/04/24 21:05] (Version actuelle) – claver | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Service paste.chapril.org ====== | ====== Service paste.chapril.org ====== | ||
+ | |||
====== Introduction ====== | ====== Introduction ====== | ||
+ | |||
Ce service est basé sur privatebin\\ | Ce service est basé sur privatebin\\ | ||
site principal : [[https:// | site principal : [[https:// | ||
sources : [[https:// | sources : [[https:// | ||
- | installation | + | Machine virtuelle Chapril pour ce service |
Les données peuvent être stockées en SQL ou en fichier plat, ici la solution retenue est fichiers plats | Les données peuvent être stockées en SQL ou en fichier plat, ici la solution retenue est fichiers plats | ||
+ | |||
+ | |||
====== Préparation ====== | ====== Préparation ====== | ||
+ | |||
+ | Création de la VM avec la procédure [[admin: | ||
+ | |||
création d'un utilisateur (non indispensable mais fait pour chapril) | création d'un utilisateur (non indispensable mais fait pour chapril) | ||
< | < | ||
Ligne 21: | Ligne 28: | ||
< | < | ||
cd /var/www/ | cd /var/www/ | ||
- | wget https:// | + | wget https:// |
- | tar xf 1.1.1.tar.gz && rm 1.1.1.tar.gz | + | tar xf x.x.x.tar.gz && rm x.x.x.tar.gz |
- | mv PrivateBin-1.1.1 paste.chapril.org | + | mv PrivateBin-x.x.x paste.chapril.org |
- | chown pastechaprilorg: | + | chown www-data: |
</ | </ | ||
==== Fichiers de logs ==== | ==== Fichiers de logs ==== | ||
Ligne 74: | Ligne 81: | ||
cd / | cd / | ||
mkdir data | mkdir data | ||
- | chown pastechaprilorg:www-data data | + | chown www-data:www-data data |
- | chmod g+w data | + | chmod -R u+rwX / |
</ | </ | ||
====== Rapport d' | ====== Rapport d' | ||
- | Créer le répertoire | + | Créer le répertoire |
- | < | + | < |
+ | mkdir /srv/ | ||
</ | </ | ||
Copier dans ce répertoire le script rapport_activite.sh | Copier dans ce répertoire le script rapport_activite.sh | ||
- | https://agir.april.org/projects/paste-chapril-org/repository/changes/tools/ | + | https://forge.april.org/Chapril/paste.chapril.org-tools/src/branch/master/ |
- | et le rendre executable, | + | et le rendre executable. |
- | puis créer la tache cron. | + | (Si nécessaire se mettre sur la dernière branche) |
- | Modifier si nécessaire | + | |
+ | puis créer la tache cron en ajoutant un fichier pastechaprilorg dans /etc/cron.d avec la ligne suivante | ||
< | < | ||
- | crontab -e | + | 1 0 1 * * root /srv/ |
- | ajouter la ligne | + | |
- | 1 0 1 * * /var/www/ | + | |
</ | </ | ||
====== Création d'un dossier de projet ====== | ====== Création d'un dossier de projet ====== | ||
Ligne 100: | Ligne 107: | ||
</ | </ | ||
+ | ====== Monitoring ====== | ||
+ | Mettre dans le dossier / | ||
+ | |||
+ | < | ||
+ | function usage() { | ||
+ | echo "Usage : $0" | ||
+ | } | ||
+ | |||
+ | # | ||
+ | if [ " | ||
+ | usage | ||
+ | else | ||
+ | lastVersion=$(curl -s https:// | ||
+ | currentVersion=$(cd / | ||
+ | #echo $lastVersion | ||
+ | #echo $currentVersion | ||
+ | if [ $currentVersion = $lastVersion ]; then | ||
+ | echo " | ||
+ | result=0 | ||
+ | else | ||
+ | echo " | ||
+ | result=1 | ||
+ | fi | ||
+ | fi | ||
+ | exit $result | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== Installation d'une mise à jour ====== | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | |||
+ | Émettre un avis de maintenance planifiée. | ||
+ | |||
+ | Désactiver le site. | ||
+ | < | ||
+ | a2dissite paste.chapril.org.conf | ||
+ | systemctl restart apache2 | ||
+ | </ | ||
+ | |||
+ | ====== Mise à jour de paste ====== | ||
+ | |||
+ | < | ||
+ | Elle a été rédigée à partir de ce qui a été fait manuellement pour la v1.5.1. | ||
+ | </ | ||
+ | |||
+ | La mise à jour se passe en 2 temps : | ||
+ | |||
+ | - générer un tarball de la nouvelle version, sur le poste de travail de l' | ||
+ | - déployer ce tarball sur le serveur | ||
+ | |||
+ | ===== Générer le " | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== La première fois ==== | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -p ~/ | ||
+ | cd ~/ | ||
+ | git clone https:// | ||
+ | git remote add upstream https:// | ||
+ | git fetch --all | ||
+ | </ | ||
+ | |||
+ | ==== Les fois suivantes ==== | ||
+ | |||
+ | <code bash> | ||
+ | cd ~/ | ||
+ | git fetch --all | ||
+ | </ | ||
+ | |||
+ | Trouver le tag de la version qui nous intéresse. C'est probablement le dernier qui nous intéresse, donc on peut l' | ||
+ | <code bash> | ||
+ | git tag --sort=v: | ||
+ | </ | ||
+ | |||
+ | Stockons le numéro de version qui nous intéresse dans une variable, ici la version 1.5.1 pour l' | ||
+ | |||
+ | <code bash> | ||
+ | export VERSION=1.5.1 | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | cd ~/ | ||
+ | git checkout main-chapril | ||
+ | git rebase ${VERSION?} | ||
+ | </ | ||
+ | |||
+ | Et maintenant, il faut résoudre les éventuels conflits. | ||
+ | |||
+ | < | ||
+ | |||
+ | Une fois les conflits résolus, on créé un tag, puis une archive tar.gz à partir de ce tag : | ||
+ | |||
+ | <code bash> | ||
+ | git tag ${VERSION? | ||
+ | git push --tags origin # Pousser le tag côté forge April | ||
+ | </ | ||
+ | |||
+ | Normalement, | ||
+ | Mais si l' | ||
+ | |||
+ | <code bash> | ||
+ | git archive --prefix=paste-${VERSION? | ||
+ | </ | ||
+ | |||
+ | ===== Déployer ===== | ||
+ | |||
+ | Le tag créé dans la précédente section donne lieu à la création d'un tarball téléchargeable sur la [[https:// | ||
+ | |||
+ | Stockons une fois de plus le numéro de version qui nous intéresse dans une variable, ici la version 1.5.1 pour l' | ||
+ | |||
+ | <code bash> | ||
+ | export VERSION=1.5.1 | ||
+ | </ | ||
+ | |||
+ | On extrait alors dans un dossier dédié, dans lequel on doit recopier le fichier // | ||
+ | |||
+ | <code bash> | ||
+ | cd / | ||
+ | wget -O versions/ | ||
+ | https:// | ||
+ | sudo -u www-data tar \ | ||
+ | --one-top-level=versions/ | ||
+ | --strip-components=1 \ | ||
+ | -xavf versions/ | ||
+ | cd versions/ | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | On peut maintenant faire la bascule, tout simplement en remplaçant le lien symbolique // | ||
+ | |||
+ | <code bash> | ||
+ | cd / | ||
+ | rm -f public_html ; ln -s versions/ | ||
+ | </ | ||
+ | |||
+ | On vérifie que l' | ||
+ | |||
+ | Si besoin, on peut rapidement faire un retour arrière à la version précédente (version 1.4.0 ici) avec la commande suivante : | ||
+ | |||
+ | <code bash> | ||
+ | rm -f public_html ; ln -s versions/ | ||
+ | </ |
admin/services/paste.chapril.org.1568390237.txt.gz · Dernière modification : 2019/09/13 15:57 de dclermonte