# Scenario upgrade umap Le principe: - passage de umap en readonly qui continue en prod - création d'un clone le stockage ZFS et d'une copie du conteneur proxmox en changeant IP et mac addr - mises à jour d'Ubuntu, postgres et umap dans le clone - test sur dev.umap.openstreetmap.fr - bascule prod vers le clone **umap sera en readonly pendant une durée limitée (1h ?)** ## Mise à jour du clone Etapes: 1. faire un dump de la base umap: pg_dump umap -F C -Z 9 -v > umap.dump 2. postgis 2.4 pose problème, on le supprime tout comme les packages obsoletes (comme postgresql 9.6) 3. do-release-upgrade x2 pour passer à focal (20.04) puis jammy (22.04) 4. install de postgresql-15 à la place des anciennes version 10 et 12 5. cr&ation du user umap et de sa database 6. pg_restore 7. mise à jour du code d'umap 8. redémarrage uwsgi osm144: passage de umap en readonly osm26: ``` zfs snapshot local-zfs/subvol-144-disk-0@upgrade zfs clone local-zfs/subvol-144-disk-0@upgrade local-zfs/subvol-999-disk-0 ``` osm999 (clone): ``` pct enter 999 # dump de la base postgresql su postgres -c "pg_dump umap -F c -Z 9 -v > /var/lib/postgresql/umap.dump" apt update ; apt -y dist-upgrade ; apt -y autoremove do-release-upgrade reboot ``` reboot, puis on continue avec focal > jammy ``` pct enter 999 do-release-upgrade reboot ``` dernier un reboot pour être en jammy (22.04) ``` # suppression des anciens cluster pg_dropcluster 12 main --stop pg_dropcluster 10 main --stop # repo postgresql.org pour installation PG15 sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - apt update apt remove -y postgresql* postgis* apt install -y postgresql-15-postgis-3-scripts apt autoremove -y # création du user umap de sa database puis import du dump su postgres -c "createuser umap; createdb umap -O umap" su postgres -c "pg_restore -d umap -v /var/lib/postgresql/umap.dump" su postgres -c "psql umap -c 'alter database umap owner to umap; grant all ON database umap to umap; grant all on schema public to umap;'" # lib nécessaires pour python / pip install apt install -y python-is-python3 libpq-dev libturbojpeg0-dev cd /srv/umap/ mv venv venv_old su umap -c "python -m venv /srv/umap/venv" su umap -c "/srv/umap/venv/bin/pip install umap-project" service uwsgi restart ``` Tests sur https://dev.umap.openstreetmap.fr/ Si ok...