Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
metamod:damocles_upgrade [2011-05-02 13:34:06] geira |
metamod:damocles_upgrade [2022-05-31 09:29:32] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Checklist for upgrading production servers to 2.8 ====== | ====== Checklist for upgrading production servers to 2.8 ====== | ||
- | Sites to be upgraded on damocles.met.no: | + | See [[https://dokit.met.no/prosjekter/metsis/damocles_upgrade]] |
- | + | ||
- | * damocles (owns damocles_metadata and damocles_userbase) | + | |
- | * dokipy | + | |
- | * ipycoord | + | |
- | * gcwdemo | + | |
- | + | ||
- | Other sites: | + | |
- | + | ||
- | * arcticdata (separate server) | + | |
- | + | ||
- | ===== Phase 1. Preparation ===== | + | |
- | + | ||
- | Using gcwdemo as an example in code. | + | |
- | + | ||
- | ==== Server configuration ==== | + | |
- | + | ||
- | sudo apt-get install metno-perl-webdev-ver1 | + | |
- | + | ||
- | ==== Site configuration ==== | + | |
- | + | ||
- | This should ideally be setup via https://svn.met.no/projects/metamodapps/, but will take too long to figure out. Instead will use existing generated master_config as starting point and backmerge changes to svn later. Custom styles ignored at this point - must be added later. | + | |
- | + | ||
- | Must be repeated for each site. | + | |
- | + | ||
- | === base directory === | + | |
- | + | ||
- | To avoid complications with existing instances, put the new sites in ''/ | + | |
- | + | ||
- | === master_config === | + | |
- | + | ||
- | cd / | + | |
- | sudo -u damocles mkdir app | + | |
- | sudo -u damocles cp / | + | |
- | + | ||
- | Compare old master_config to default: | + | |
- | + | ||
- | cd .. | + | |
- | trunk/ | + | |
- | gcwdemo/ | + | |
- | + | ||
- | + | ||
- | === Other custom files === | + | |
- | + | ||
- | Postponed until Phase 5 | + | |
- | + | ||
- | ==== Metamod source ==== | + | |
- | + | ||
- | cd / | + | |
- | sudo svn co https:// | + | |
- | sudo chown -R damocles.damocles trunk/ # needed for building | + | |
- | + | ||
- | ===== Phase 2. Setting up new database ===== | + | |
- | + | ||
- | Only done once. | + | |
- | + | ||
- | Database setup requires scripts generated to target. This means the Generate Target part of Phase 3 for site damocles must be executed first. | + | |
- | + | ||
- | The database is not on the damocles server, but on **metamoddb.met.no**. This contains among others the following databases: | + | |
- | + | ||
- | ^Name ^ Owner ^ | + | |
- | |damocles_metadata | + | |
- | |damocles_userbase | + | |
- | + | ||
- | To avoid conflicts and downtime, make two new databases for 2.8 instead: | + | |
- | + | ||
- | ==== damocles28_userbase ==== | + | |
- | + | ||
- | * userdb data are not duplicated anywhere else | + | |
- | * must dump 2.6 userdb and import into 2.8, then run upgradeuserdb_26-28.sh | + | |
- | * see http:// | + | |
- | + | ||
- | pg_dump -h metamoddb -U admin damocles_userbase > damocles_userbase.sql | + | |
- | createdb -U admin -h metamoddb -E UTF-8 damocles28_userbase | + | |
- | cat damocles_userbase.sql | psql -h metamoddb -U admin damocles28_userbase | + | |
- | + | ||
- | ==== damocles28_metadata ==== | + | |
- | + | ||
- | * metadatadb must be generated from scratch using createdb.sh | + | |
- | * which xml files should be used to populate the DB? | + | |
- | * / | + | |
- | * run import_dataset.pl on files | + | |
- | * anything else to think of? (if so, probably best Heiko did this) | + | |
- | + | ||
- | ===== Phase 3. Setting up generic metamod ===== | + | |
- | + | ||
- | This will setup a generic Metamod 2.8 instance to test the system is running. Customization will be done afterwards, and the installation re-run. | + | |
- | + | ||
- | Must be repeated for each site. | + | |
- | + | ||
- | ==== Generate target ==== | + | |
- | + | ||
- | cd / | + | |
- | sudo -u damocles PERL5LIB=/ | + | |
- | + | ||
- | Note that Calalyst building tests during update_target will fail unless you have a working, up-to-date database; also, you cannot upgrade your database without running update_target. Chicken, meet egg. Suggest temporary commenting out the following on line 237 (+/-): | + | |
- | + | ||
- | # | + | |
- | # install Catalyst files before $appdir to avoid clobbering custom files | + | |
- | # | + | |
- | & | + | |
- | + | ||
- | You will now get the following error message: | + | |
- | + | ||
- | Configuring application '' | + | |
- | Cannot write to target dir / | + | |
- | + | ||
- | Time to take the weekend off and try again next week. | + | |
- | + | ||
- | Create/ | + | |
- | + | ||
- | sudo -u damocles ./ | + | |
- | + | ||
- | ==== Test Catalyst ==== | + | |
- | + | ||
- | Remember each site must have its own dedicated port: | + | |
- | + | ||
- | |damocles|3000| | + | |
- | |dokipy|3001| | + | |
- | |ipycoord|3002| | + | |
- | |gcwdemo|3003| | + | |
- | + | ||
- | + | ||
- | ==== Apache configuration ==== | + | |
- | + | ||
- | This server uses DNS-based virtual hosting, however each site already has an existing | + | |
- | setup in sites-available. This means the generated httpd.conf in target/etc cannot be used directly; instead you must manually copy & paste the new config into the old file. | + | |
- | (Perhaps later when the 2.6 versions are turned off we could use the generated config files directly.) | + | |
- | + | ||
- | ==== Install services ==== | + | |
- | + | ||
- | Do not run install_jobs.sh; | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Phase 4. Adding custom functions and styling ===== | + | |
- | + | ||
- | Todo by someone else (have no idea what is required and how to implement it). | + | |
- | + | ||
- | Must be repeated for each site. | + | |
- | + | ||
- | + | ||
- | --- // | + |