Skip to end of banner
Go to start of banner

Upgrade Q3-2020 auf R1-2021

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

# Upgrade Q3-2020 Hotfix #2 => R1-2021 "Iris"

# Voraussetzung: Q3 2020 Hotfix #2 (oder Hotfix #3) ist installiert.
# Annahme: der Standard-Mandant (hier: diku) ist abgesichert (supertenant-Modul mod-authoken a); ansonsten entfallen einige Schritte dieser Anleitung
# Snapshots der beteiligten Rechner machen (lassen): folio-server (Frontend, Backend-Module, Okapi), dbserver (Postgres-DB)
# Datenbankinhalte sichern auf dbserver
  ssh folio@dbserver
  cd db-backup
# Dump all roles on the source database
  pg_dumpall -g > roles.psql
# Dump Database contents
  pg_dump okapi > okapi.psql
  pg_dump folio > folio.psql

# ***************************************************************************************************************
# Upgrade der Okapi-Version (das muss man machen! Sonst kann man die neuen Module nicht ziehen) / Neustart Okapi
# ****************************************************************************************************************
# Installieren und konfigurieren Sie Okapi
# Importieren Sie den FOLIO-Signaturschlüssel, fügen Sie das FOLIO apt-Repository hinzu und installieren Sie Okapi (dieser Version).
  ssh folio@folio-server
  mkdir /usr/folio/upgrade
# okapi.conf sichern:
  sudo su
  cp -p /etc/folio/okapi/okapi.conf /usr/folio/upgrade/
#
  wget --quiet -O - https://repository.folio.org/packages/debian/folio-apt-archive-key.asc | sudo apt-key add -
OK
  sudo add-apt-repository "deb https://repository.folio.org/packages/ubuntu focal/"
  sudo apt-get update
  sudo apt-get -y --allow-change-held-packages install okapi=4.7.2-1    # R1-2021 Version
  # okapi.conf : Y or I : install the package maintainer's version
# okapi.conf zurückspielen:
  sudo cp -p /usr/folio/upgrade/okapi.conf /etc/folio/okapi/okapi.conf
  sudo apt-mark hold okapi
# Neustart Okapi:
  sudo systemctl daemon-reload
  sudo systemctl restart okapi.service
  # Nun das Log verfolgen ! Das läuft ein paar Minuten !
  # in /var/log/folio/okapi/okapi.log kommt
INFO DeploymentManager fast shutdown
# und direkt im Anschluss
INFO InternalModule InternalModule starting okapiversion=4.7.2
...
... Okpai startet die Module wieder an (das abwarten)
INFO MainVerticle Deploy completed succesfully


# Hole die Liste der Module für diesen Mandanten (nur informativ !)
  cd /usr/folio/upgrade
  export TOKEN=$( curl -s -S -D - -H "X-Okapi-Tenant: supertenant" -H "Content-type: application/json" -H "Accept: application/json" -d '{ "tenant" : "supertenant", "username" : "****", "password" : "****" }' http://localhost:9130/authn/login | grep -i "^x-okapi-token: " )
  echo $TOKEN
  export TENANT=supertenant
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/diku/modules
  [ {
...
}, {
  "id" : "okapi-4.7.2"
} ]
  # ==> 106 Module (Edge, Frontend & Backend) (Q3 2020 Hotfix #1 Release) + 1 Okapi-Modul (R1 2021 Release)

# Hole die Liste der Module für den Super-Mandanten (nur informativ !)
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/supertenant/modules
[ {
  "id" : "mod-authtoken-2.6.0"
}, {
  "id" : "mod-login-7.1.1"
}, {
  "id" : "mod-permissions-5.12.2"
}, {
  "id" : "mod-users-17.2.2"
}, {
  "id" : "okapi-4.7.2"
} ]


  # Wayne: Load PostgreSQL extensions in the public schema of each RMB module's database with the command ALTER EXTENSION pg_trgm SET SCHEMA public; (if all module schemas are in one database, obviously only need to do once; this is a database-level operation)
  ssh folio@dbserver
  psql -U folio
  \c folio
  ALTER EXTENSION pg_trgm SET SCHEMA public;
  ALTER EXTENSION
  \q

# Modulbeschreibungen aus dem zentralen Register abrufen:
  ssh folio@folio-server
  vim /usr/folio/folio-install/runbooks/single-server/scripts/okapi-pull.json
  {
  "urls": [
  "https://folio-registry.dev.folio.org"
  ]
  }
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/folio-install/runbooks/single-server/scripts/okapi-pull.json http://localhost:9130/_/proxy/pull/modules
  2021-05-19T18:15:51,851 INFO  PullManager          Remote registry at https://folio-registry.dev.folio.org is version 4.7.1
  2021-05-19T18:15:51,852 INFO  PullManager          pull smart
  2021-05-19T18:16:16,171 INFO  PullManager          pull: 270 MDs to insert
  2021-05-19T18:16:23,919 INFO  ProxyContext         877575/proxy RES 200 37240045us okapi-4.7.2 /_/proxy/pull/modules


# Erstellen Sie die neueste Version der FOLIO Stripes-Plattform (Alfons & Ingolf)
  # Move to NodeJS LTS
  sudo n lts
  # installed : v14.17.0 (with npm 6.14.13)
  # Klone das Repositorium platform-complete, wechsle in das Verzeichnis
  # git clone https://github.com/folio-org/platform-complete
  cd /usr/folio/platform-complete
  git fetch
  # neuer Branch R1-2021, neuer Tag R1-2021-GA
  # Leihe den Zweig (s.u.) aus.
  # Lokale Änderungen zwischenspeichern. Das sollte nur stripes.config.js betreffen. Aber auch yarn.lock
  git add yarn.lock
  git stash save
  git checkout master
  git pull
  git checkout R1-2021
  git stash pop # das löscht auch den Zwischenspeicher
  # Installiere npm-Pakete
  sudo su
  yarn install
  # Done in 132.36s.
  vim ./stripes.config.js
  # => okapi: { 'url':'https://folio-hbz1.hbz-nrw.de/okapi', 'tenant':'diku' },
  # Achtung ! Hier muss eine URL rein, die über https zugänglich ist, also für die es ein Zertifikat gibt, wenn man auch auf die index.html per https zugreift !
  # Ungesicherte URLs wie z.B. http://folio-hbz1.hbz-nrw.de:9130 gehen nicht, dann kommt in der JS Konsole: "Mixed Content: The page at 'https://folio-hbz1.hbz-nrw.de/' was loaded over HTTPS, but requested an insecure resource 'http://folio-hbz1.hbz-nrw.de:9130/saml/check'. This request has been blocked; the content must be served over HTTPS."
  # in stripes.config.js kann man auch ein anderes Logo und Favoriten-Bildchen referenzieren (z.B. hbz- oder Kunden-Logo)

  # Dale 10.05.2021:
  Remove @folio/inventory-es from stripes.config.js

  NODE_ENV=production yarn build output   # dauert etwas
  # Done in 631.24s.


  # Stellen Sie ein kompatibles FOLIO-Backend bereit und aktivieren Sie es für den Mandanten

  # 1. Veröffentlichen Sie Datenquelleninformationen zur Verwendung durch bereitgestellte Module in der Okapi-Umgebung
  # Das muss man nur machen, wenn die Datenbank "folio" gelöscht wurde.
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"DB_HOST\",\"value\":\"10.9.2.61\"}" http://localhost:9130/_/env;   # 10.9.2.61 = dbserver
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"DB_PORT\",\"value\":\"5432\"}" http://localhost:9130/_/env;
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"DB_DATABASE\",\"value\":\"folio\"}" http://localhost:9130/_/env;
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"DB_USERNAME\",\"value\":\"folio\"}" http://localhost:9130/_/env;
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"DB_PASSWORD\",\"value\":\"folio123\"}" http://localhost:9130/_/env;
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"KAFKA_HOST\",\"value\":\"193.30.112.85\"}" http://localhost:9130/_/env;   # 193.30.112.85 = folio-server
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"KAFKA_PORT\",\"value\":\"9092\"}" http://localhost:9130/_/env;
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-Type: application/json" -d "{\"name\":\"OKAPI_URL\",\"value\":\"https://folio-hbz1.hbz-nrw.de/okapi\"}" http://localhost:9130/_/env;

  sudo docker ps | grep -v "^CONTAINER" | wc -l
  # 55 Container laufen, 53 Backend-Module der Version Q3 2020 Hotfix #2, dazu Kafka und Tierpfleger.


  # 2. Melde die Liste der Werkstatt-Module (Backend) an, um sie bereitzustellen und zu aktivieren
  # Das zieht auch die Docker-Abbilder von folioci.
  # Das wird die Module im lokalen System aufbringen und sie für den Mandanten aktivieren.
  # Bemerkung: Es läuft sehr lange, denn alle Docker-Abbilder müssen vom Docker-Hub gezogen werden. Du kannst den Fortschritt im Okapi-Log verfolgen, bei /var/log/folio/okapi/okapi.log
  # Fortschritt kann so überwacht werden: sudo docker ps | grep -v "^CONTAINER" | wc -l

  # IK: Zuerst Umgebungsvariablen für mod_pubsub ändern, wg. Kommunikation mit Kafka: siehe https://wiki.folio.org/pages/viewpage.action?pageId=65110747 ; KAFKA_HOST und OKAPI_URL auf aktuelle IP-Adresse setzen
  # Das auch für diese Module machen (in R1-2021 kommunzieren diese mit Kafka):
  mod-data-import
  mod-source-record-manager
  mod-source-record-storage
  mod-inventory
  mod-inventory-storage
  * mod-inventory-storage       The module now depends on Kafka message broker. Kafka should be up and running before module install.   Inventory-storage APIs (instances/holding-records/items - create, update, delete actions) will fail with 500 status code if Kafka is unreachable.       Make sure KAFKA_PORT and KAFKA_HOST environment variables are set and propagated to the mod-inventory-storage container before module installation.
Bohdan Suprun Mikhail Fokanov Oleksii Petrenko:
The same approach as for mod-pubsub may be used here. We tried to follow the same naming for the properties.
  cd /usr/folio/upgrade
  # Modulversion für R1 2021: 2.0.7
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-pubsub-2.0.7 -O pubsub-module-descriptor.json
  vim pubsub-module-descriptor.json
  # Im Launch-Deskriptor anpassen:
    }, {
      "name" : "KAFKA_HOST",
      "value" : "193.30.112.85"
    }, {
      "name" : "KAFKA_PORT",
      "value" : "9092"
    }, {
      "name" : "OKAPI_URL",
      "value" : "http://193.30.112.85:9130"
    }, {
      "name" : "SYSTEM_USER_PASSWORD",
      "value" : "****"    #  Hier irgendwas wählen (nicht das Standardpasswort verwenden, unsicher !)
    } ],
  curl -X DELETE -D - -w '\n' -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/modules/mod-pubsub-2.0.7
  curl -i -w '\n' -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H 'Content-type: application/json' -d @pubsub-module-descriptor.json http://localhost:9130/_/proxy/modules

  Das gleiche auch (ohne OKAPI_URL) machen für
  # mod-data-import 2.0.2
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-data-import-2.0.2 -O data-import-module-descriptor.json
  vim data-import-module-descriptor.json
  curl -X DELETE -D - -w '\n' -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/modules/mod-data-import-2.0.2
  curl -i -w '\n' -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H 'Content-type: application/json' -d @data-import-module-descriptor.json http://localhost:9130/_/proxy/modules
  # mod-inventory 16.3.2
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-inventory-16.3.2 -O inventory-module-descriptor.json
  vim inventory-module-descriptor.json
  curl -X DELETE -D - -w '\n' -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/modules/mod-inventory-16.3.2
  curl -i -w '\n' -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H 'Content-type: application/json' -d @inventory-module-descriptor.json http://localhost:9130/_/proxy/modules
  # mod-inventory-storage 20.2.1 => NEIN, da steht der symbolische Wert "kafka" drin
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-inventory-storage-20.2.1 -O inventory-storage-module-descriptor.json
  vim inventory-storage-module-descriptor.json
  # mod-source-record-manager 3.0.7
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-source-record-manager-3.0.7 -O source-record-manager.json
  vim source-record-manager.json
  curl -X DELETE -D - -w '\n' -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/modules/mod-source-record-managaer-3.07
  curl -i -w '\n' -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H 'Content-type: application/json' -d @sourec-record-manager.json http://localhost:9130/_/proxy/modules
  # mod-source-record-storage 5.0.4
  wget https://folio-registry.dev.folio.org/_/proxy/modules/mod-source-record-storage-5.0.4 -O source-record-storage-module-descriptor.json
  vim source-record-storage-module-descriptor.json
  curl -X DELETE -D - -w '\n' -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/modules/mod-source-record-storage-5.0.4
  curl -i -w '\n' -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H 'Content-type: application/json' -d @source-record-storage-module-descriptor.json http://localhost:9130/_/proxy/modules

# Zuerst mod-pubsub hochziehen:
# Jason 22.01.2021: Upgrade mod-pubsub along with its dependencies:
# Wayne (FOLIO-2662): Das hier POSTen (Modul-Version aus R1-2021 benutzen):
# Das zieht auch die Container der neuen, abhängigen Module hoch:

  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d '[ { "id" : "mod-pubsub-2.0.7", "action" : "enable" } ]' http://localhost:9130/_/proxy/tenants/diku/install?simulate=true

HTTP/1.1 200 OK
vary: origin
X-Okapi-Trace: POST mod-authtoken-2.6.0 http://193.30.112.85:9132/_/proxy/tenants/diku/install.. : 202 476151us
Content-Type: application/json
X-Okapi-Trace: POST okapi-4.7.2 /_/proxy/tenants/diku/install.. : 200 6097559us
content-length: 89

[ {
  "id" : "mod-pubsub-2.0.7",
  "from" : "mod-pubsub-1.3.3",
  "action" : "enable"
} ]

  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d '[ { "id" : "mod-pubsub-2.0.7", "action" : "enable" } ]' http://localhost:9130/_/proxy/tenants/diku/install?deploy=true\&preRelease=false\&tenantParameters=loadReference%3Dtrue

HTTP/1.1 200 OK
vary: origin
Content-Type: application/json
X-Okapi-Trace: POST okapi-4.7.2 /_/proxy/tenants/diku/install.. : 200 45399904us
content-length: 89

[ {
  "id" : "mod-pubsub-2.0.7",
  "from" : "mod-pubsub-1.3.3",
  "action" : "enable"
} ]


- Elasticsearch nicht installieren !
# Dale 10.05.2021: To build without inventory-es, do the following:
  cd ~/platform-complete
  Remove mod-search and folio_inventory-es entries from install.json
  Remove mod-search from okapi-install.json
  Remove folio_inventory-es from stripes-install.json
  Remove @folio/inventory-es from package.json

# Jakub Skoczen 10.02.21 im #sys-ops Slack: for Honeysuckle -> Iris upgrade we will ask you to run mod-permissions migration last (put it at the very end of you install.json file). This will ensure that mod-permissions upgrades after all other modules have upgraded to Iris versions where duplicate permissions are already cleaned up.
  vim install.json ==> mod-permissions ganz nach unten schieben
  vim okapi-install.json ==> mod-permissions ganz nach unten schieben
  Wayne (28.05.2021): mod-aes ist aus okapi-install.conf entfernt worden (falls nicht (alte Version!), das manuell entfernen).


  # Zuerst den Supertenant hochziehen auf das neue Release (er hat kein mod-pubsub):
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/okapi-install.json http://localhost:9130/_/proxy/tenants/supertenant/install?simulate=true\&preRelease=false
[ {
  "id" : "mod-users-17.3.0",
  "from" : "mod-users-17.2.2",
  "action" : "enable"
}, {
  "id" : "mod-login-7.2.0",
  "from" : "mod-login-7.1.1",
  "action" : "enable"
}, {
  "id" : "mod-authtoken-2.7.0",
  "from" : "mod-authtoken-2.6.0",
  "action" : "enable"
}, {
  "id" : "mod-permissions-5.13.2",
  "from" : "mod-permissions-5.12.2",
  "action" : "enable"
} ]
  # => mod-users, mod-login, mod-authtoken und mod-permissions wird hoch gezogen
  # Also nur eine Liste mit diesen 4 Modulen schicken, nicht platform-complete !
  cp /usr/folio/platform-complete/okapi-install.json /usr/folio/upgrade/supertenant-install.json
  vim supertenant-install.json # alles bis auf diese 4 Module herauswerfen
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/upgrade/supertenant-install.json http://localhost:9130/_/proxy/tenants/supertenant/install?deploy=false\&preRelease=false\&tenantParameters=loadReference%3Dtrue
HTTP/1.1 200 OK

  # Schließlich alle (restlichen) Werkstatt-Module für den Mandanten bereitstellen und aktivieren:
  # Jason 22.01.2021: post the list of modules to enable for the tenant and Okapis tenant API will upgrade them for you.
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/okapi-install.json http://localhost:9130/_/proxy/tenants/diku/install?simulate=true\&preRelease=false
[ {
  "id" : "mod-pubsub-2.0.7",
  "action" : "uptodate"
}, {
  "id" : "mod-user-import-3.3.2",
  "action" : "uptodate"
}, {
  # alle anderen stehen auf "enable"
  # mod-user-import hat keine Versionänderung erfahren, von Q3-2020 => R1-2021, alle anderen schon
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/okapi-install.json http://localhost:9130/_/proxy/tenants/diku/install?deploy=true\&preRelease=false\&tenantParameters=loadReference%3Dtrue

  # Falls das auf Fehler läuft, noch einmal alle Module aus dem zentralen Register ziehen:
  # Bei deploy=true der Backend-Module müssen immer alle aktuellen Frontend-Module dem Discovery bekannt sein (auch wenn sie für dieses Release gar nicht benötigt werden)
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/folio-install/runbooks/single-server/scripts/okapi-pull.json http://localhost:9130/_/proxy/pull/modules
  13 MDs to insert
  # Danach die restlichen Backend-Module aktivieren (kein Deploy mehr)
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/okapi-install.json http://localhost:9130/_/proxy/tenants/diku/install?deploy=false\&preRelease=false\&tenantParameters=loadReference%3Dtrue
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
vary: origin
Content-Type: application/json
X-Okapi-Trace: POST okapi-4.7.2 /_/proxy/tenants/diku/install.. : 200 368977635us
content-length: 6457

[ {
  "id" : "mod-finance-storage-7.0.3",
  "action" : "uptodate"
}, {
  "id" : "mod-orders-storage-12.0.1",
  "action" : "uptodate"
}, {
  "id" : "mod-configuration-5.6.0",
  "action" : "uptodate"
}, {
  "id" : "mod-inventory-storage-20.2.1",
  "action" : "uptodate"
}, {
  "id" : "mod-users-17.3.0",
  "action" : "uptodate"
}, {
  "id" : "mod-login-7.2.0",
  "action" : "uptodate"
}, {
  "id" : "mod-pubsub-2.0.7",
  "action" : "uptodate"
}, {
  "id" : "mod-circulation-storage-12.2.1",
  "action" : "uptodate"
}, {
  "id" : "mod-source-record-storage-5.0.4",
  "action" : "uptodate"
}, {
  "id" : "mod-inventory-16.3.2",
  "action" : "uptodate"
}, {
  "id" : "mod-organizations-storage-4.0.0",
  "action" : "uptodate"
}, {
  "id" : "mod-finance-4.1.2",
  "action" : "uptodate"
}, {
  "id" : "mod-calendar-1.11.0",
  "action" : "uptodate"
}, {
  "id" : "mod-event-config-1.7.0",
  "action" : "uptodate"
}, {
  "id" : "mod-template-engine-1.13.0",
  "action" : "uptodate"
}, {
  "id" : "mod-email-1.10.0",
  "action" : "uptodate"
}, {
  "id" : "mod-sender-1.5.0",
  "action" : "uptodate"
}, {
  "id" : "mod-notify-2.8.0",
  "action" : "uptodate"
}, {
  "id" : "mod-feesfines-16.0.1",
  "action" : "uptodate"
}, {
  "id" : "mod-patron-blocks-1.2.0",
  "action" : "uptodate"
}, {
  "id" : "mod-notes-2.11.0",
  "action" : "uptodate"
}, {
  "id" : "mod-circulation-20.1.6",
  "action" : "uptodate"
}, {
  "id" : "mod-tags-0.8.0",
  "action" : "uptodate"
}, {
  "id" : "mod-orders-12.0.1",
  "action" : "uptodate"
}, {
  "id" : "mod-agreements-4.0.1",
  "action" : "uptodate"
}, {
  "id" : "mod-user-import-3.3.2",
  "action" : "uptodate"
}, {
  "id" : "mod-licenses-3.1.0",
  "from" : "mod-licenses-3.0.1",
  "action" : "enable"
}, {
  "id" : "mod-audit-2.0.4",
  "from" : "mod-audit-1.0.4",
  "action" : "enable"
}, {
  "id" : "mod-courses-1.2.2",
  "from" : "mod-courses-1.1.2",
  "action" : "enable"
}, {
  "id" : "mod-data-export-4.0.1",
  "from" : "mod-data-export-3.0.5",
  "action" : "enable"
}, {
  "id" : "mod-data-import-converter-storage-1.10.2",
  "from" : "mod-data-import-converter-storage-1.9.2",
  "action" : "enable"
}, {
  "id" : "mod-source-record-manager-3.0.7",
  "from" : "mod-source-record-manager-2.4.3",
  "action" : "enable"
}, {
  "id" : "mod-data-import-2.0.2",
  "from" : "mod-data-import-1.11.1",
  "action" : "enable"
}, {
  "id" : "mod-kb-ebsco-java-3.7.0",
  "from" : "mod-kb-ebsco-java-3.6.5",
  "action" : "enable"
}, {
  "id" : "mod-erm-usage-4.0.0",
  "from" : "mod-erm-usage-3.0.2",
  "action" : "enable"
}, {
  "id" : "mod-data-export-spring-1.0.4",
  "action" : "enable"
}, {
  "id" : "mod-invoice-storage-5.0.1",
  "from" : "mod-invoice-storage-4.1.2",
  "action" : "enable"
}, {
  "id" : "mod-invoice-5.0.3",
  "from" : "mod-invoice-4.1.2",
  "action" : "enable"
}, {
  "id" : "mod-organizations-1.2.0",
  "from" : "mod-organizations-1.1.1",
  "action" : "enable"
}, {
  "id" : "mod-oai-pmh-3.4.2",
  "from" : "mod-oai-pmh-3.2.4",
  "action" : "enable"
}, {
  "id" : "mod-quick-marc-2.0.4",
  "from" : "mod-quick-marc-1.2.2",
  "action" : "enable"
}, {
  "id" : "mod-remote-storage-1.0.3",
  "action" : "enable"
}, {
  "id" : "mod-codex-mux-2.10.0",
  "from" : "mod-codex-mux-2.9.2",
  "action" : "enable"
}, {
  "id" : "mod-password-validator-2.0.2",
  "from" : "mod-password-validator-1.8.2",
  "action" : "enable"
}, {
  "id" : "mod-authtoken-2.7.0",
  "from" : "mod-authtoken-2.6.0",
  "action" : "enable"
}, {
  "id" : "mod-users-bl-6.2.0",
  "from" : "mod-users-bl-6.1.1",
  "action" : "enable"
}, {
  "id" : "mod-login-saml-2.1.1",
  "from" : "mod-login-saml-2.0.1",
  "action" : "enable"
}, {
  "id" : "mod-copycat-1.0.3",
  "action" : "enable"
}, {
  "id" : "mod-ncip-1.7.0",
  "from" : "mod-ncip-1.6.3",
  "action" : "enable"
}, {
  "id" : "mod-gobi-2.0.0",
  "from" : "mod-gobi-1.11.1",
  "action" : "enable"
}, {
  "id" : "mod-patron-4.4.0",
  "from" : "mod-patron-4.3.0",
  "action" : "enable"
}, {
  "id" : "mod-rtac-2.1.0",
  "from" : "mod-rtac-2.0.1",
  "action" : "enable"
}, {
  "id" : "mod-graphql-1.8.0",
  "action" : "enable"
}, {
  "id" : "mod-z3950-2.1.0",
  "action" : "enable"
}, {
  "id" : "mod-codex-inventory-1.9.0",
  "from" : "mod-codex-inventory-1.8.0",
  "action" : "enable"
}, {
  "id" : "mod-codex-ekb-1.8.0",
  "from" : "mod-codex-ekb-1.7.2",
  "action" : "enable"
}, {
  "id" : "mod-data-export-worker-1.0.6",
  "action" : "enable"
}, {
  "id" : "mod-erm-usage-harvester-3.0.2",
  "from" : "mod-erm-usage-harvester-2.0.2",
  "action" : "enable"
}, {
  "id" : "mod-permissions-5.13.2",
  "from" : "mod-permissions-5.12.2",
  "action" : "enable"
}, {
  "id" : "folio_plugin-find-po-line-2.3.100096",
  "from" : "folio_plugin-find-po-line-2.2.1",
  "action" : "enable"
}, {
  "id" : "folio_invoice-2.3.1000460",
  "from" : "folio_invoice-2.2.3",
  "action" : "enable"
}, {
  "id" : "folio_receiving-1.3.3000240",
  "from" : "folio_receiving-1.2.1",
  "action" : "enable"
}, {
  "id" : "folio_agreements-6.1.1000690",
  "from" : "folio_agreements-5.0.1",
  "action" : "enable"
}, {
  "id" : "folio_orders-2.3.10001051",
  "from" : "folio_orders-2.2.6",
  "action" : "enable"
}, {
  "id" : "folio_data-export-4.0.1000241",
  "from" : "folio_data-export-3.0.2",
  "action" : "enable"
}, {
  "id" : "folio_eholdings-6.0.3000937",
  "from" : "folio_eholdings-5.0.5",
  "action" : "enable"
}, {
  "id" : "folio_erm-comparisons-2.1.100087",
  "from" : "folio_erm-comparisons-1.1.1",
  "action" : "enable"
}, {
  "id" : "folio_plugin-find-eresource-2.1.100035",
  "from" : "folio_plugin-find-eresource-1.0.0",
  "action" : "enable"
}, {
  "id" : "folio_plugin-find-agreement-6.1.100097",
  "from" : "folio_plugin-find-agreement-5.0.0",
  "action" : "enable"
}, {
  "id" : "folio_local-kb-admin-4.1.1000176",
  "from" : "folio_local-kb-admin-3.0.0",
  "action" : "enable"
}, {
  "id" : "edge-sip2-2.0.0",
  "from" : "edge-sip2-1.4.0",
  "action" : "enable"
}, {
  "id" : "folio_users-6.0.10001480",
  "from" : "folio_users-5.0.9",
  "action" : "enable"
}, {
  "id" : "folio_circulation-5.0.1000679",
  "from" : "folio_circulation-4.0.2",
  "action" : "enable"
}, {
  "id" : "folio_erm-usage-5.0.1000307",
  "from" : "folio_erm-usage-4.0.2",
  "action" : "enable"
}, {
  "id" : "folio_stripes-smart-components-6.1.1000968",
  "from" : "folio_stripes-smart-components-5.0.4",
  "action" : "enable"
}, {
  "id" : "folio_notes-5.0.100096",
  "from" : "folio_notes-4.0.0",
  "action" : "enable"
} ]
# OK, wird fertig. Frontend-Module sind auf komischen Zwischenversionen.

  sudo docker ps | grep -v "^CONTAINER" | wc -l
119
  # davon sollten 59 Container von R1-2021 sein, sowie Tierpfleger und Kafka. Die anderen sind ältere Versionen.

  # Guck mal, was jetzt im Discovery ist:
  curl -w '\n' -D - -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/discovery/modules | grep srvcId | wc
117

  # Gucke, was ist aktiviert für den Supertenant:
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/supertenant/modules
[ {
  "id" : "mod-authtoken-2.7.0"
}, {
  "id" : "mod-login-7.2.0"
}, {
  "id" : "mod-permissions-5.13.2"
}, {
  "id" : "mod-users-17.3.0"
}, {
  "id" : "okapi-4.7.2"
} ]
  # Gut, das sind die R1 2021 Versionen.
  # Gucke, was ist aktiviert für den Mandanten
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/diku/modules | grep "mod-" | wc
59 # Ja, das sind alle R1-2021 Backend-Module

# 3. Melde die Liste der Schaufenster-Module (Frontend) an, um sie zu aktivieren (aber nicht bereitzustellen; es sind ja keine Container)

# Für den Supertenant keine Frontend-Module installieren.
# Für den diku-Mandanten:
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/stripes-install.json http://localhost:9130/_/proxy/tenants/diku/install?simulate=true\&preRelease=false
  curl -w '\n' -D - -X POST -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" -H "Content-type: application/json" -d @/usr/folio/platform-complete/stripes-install.json http://localhost:9130/_/proxy/tenants/diku/install?preRelease=false
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
# OK, hat Zwischenversionen der Frontend-Module wieder entfernt.

  # -> 50 Frontend-Module (folio*) und 8 Edge-Module aktiviert und bereitgestellt.
  # Und hier die Zählsummen für das R1-2021 Release:
  # 59 Backend-Module (mod-aes gehört nicht dazu), 50 Frontend-Module, 8 Edge-Module und das Okapi-Module = 118 Module.
  # 59 Container + Kafka + Tierpfleger = 61 laufende Container.

  # Gucke, was ist aktiviert für den diku-Mandanten:
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/diku/modules | grep "id" | wc
118
  # Gucke, was ist aktiviert für den Supertenant
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/supertenant/modules
  # => 59 Container sind von diku und supertenant in Benutzung, 58 Container sind nicht in Benutzung. Außerdem laufen
  #       Tierpfleger und Kafka.

  # Entferne jetzt die 58 unbenutzten Container.
  # Erstelle eine Liste aller unbenutzen Module.
  sudo docker ps --all > /usr/folio/upgrade/docker_ps.20210531.txt
  # schmeiße aus der neuen Liste alles raus, was benutzt wird
  cp docker_ps.20210531.txt modules_unused_in_R1-2021.txt
  # Schmeiße also alle Module raus, die in diesen Listen sind:
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/supertenant/modules
  curl -w '\n' -XGET -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/proxy/tenants/diku/modules
  # Över blifft (kann von Installation zu Installation variieren, je nachdem, wie viele "Altlasten" man mitgeschleppt hat):
  cat modules_unused_in_R1-2021.txt
mod-users-17.2.2
mod-audit-1.0.4
mod-codex-mux-2.9.2
mod-sender-1.4.0
mod-permissions-5.12.2
mod-finance-storage-5.0.2
mod-users-17.2.3
mod-data-export-3.0.4
mod-feesfines-15.9.2
mod-oai-pmh-3.2.4
mod-users-bl-6.1.1
mod-kb-ebsco-java-3.6.5
mod-login-saml-2.0.1
mod-orders-11.1.2
mod-login-7.1.1
mod-invoice-4.1.2
mod-licenses-3.0.1
mod-agreements-3.0.1
mod-finance-storage-6.0.1
mod-data-import-converter-storage-1.9.2
mod-template-engine-1.12.0
mod-courses-1.1.2
mod-patron-4.3.0
mod-finance-4.0.1
mod-courses-1.1.1
mod-organizations-storage-3.2.2
mod-erm-usage-3.0.2
mod-password-validator-1.8.2
mod-source-record-storage-4.1.3
mod-data-export-3.0.5
mod-inventory-16.1.3
mod-circulation-19.2.8
mod-orders-storage-11.1.4
mod-configuration-5.5.0
mod-notes-2.10.2
mod-user-import-3.3.0
mod-calendar-1.10.1
mod-erm-usage-harvester-2.0.2
mod-circulation-storage-12.1.4
mod-codex-inventory-1.8.0
mod-source-record-storage-4.1.4
mod-data-import-1.11.1
mod-codex-ekb-1.7.2
mod-tags-0.7.2
mod-organizations-1.1.1
mod-email-1.9.2
mod-notify-2.7.1
mod-invoice-storage-4.1.2
mod-event-config-1.6.1
mod-quick-marc-1.2.2
mod-source-record-manager-2.4.3
mod-ncip-1.6.3
mod-inventory-storage-19.4.4
mod-email-1.9.1
mod-patron-blocks-1.1.4
mod-authtoken-2.6.0
mod-gobi-1.11.1
mod-rtac-2.0.1
  # schicke DELETE an /discovery/modules, aber nur für die Module, die von keinem Mandanten mehr benutzt werden.
  curl -w '\n' -D - -X DELETE -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/discovery/modules/<MODULE-ID>
  # z.B. curl -w '\n' -D - -X DELETE -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/discovery/modules/mod-users-17.2.2
  ## wird jeweils mit "HTTP/1.1 204 No Content" quittiert.
  # Die DELETE-Befehle davor schreiben, dann die Datei ausführen:
  ./modules_unused_in_R1-2021.txt

  # Verfügbare Module auflisten lassen:
  curl -w '\n' -D - -H "$TOKEN" -H "X-Okapi-Tenant: $TENANT" http://localhost:9130/_/discovery/modules | grep srvcId | wc
59
  # Laufende Container:
  sudo docker ps | grep -v "^CONTAINER" | wc -l
61 # Die 59 Backend-Module des R1-2021 + Kafka + Tierpfleger

# *** FERTIG
Melden Sie sich an als "folio_admin:****" auf https://folio-hbz1.hbz-nrw.de
  Prüfen:
  - Funktioniert. Besteht aus 118 Modulen, davon 22 "App-Module" (siehe bei Einstellungen - Software-Versionen)
  - Referenzdaten sind da, z.B. Einstellungen - Katalog - Typen von Mitwirkenden : Übersetzer (Ueb) 7.1.2021 vom HBZ angelegt
  - sind die zuvor angelegten Benutzer da ? Ja, z.B. Suche nach "Ingolf" => username = ikuss
  - Sind im Katalog die zuvor angelegten Datensätze zu finden ? Ja, Suche z.B. nach "Kafka" im Titel => HRID 91059

  • No labels