Differences
This shows you the differences between two versions of the page.
metamod:damocles_upgrade [2011-05-03 11:50:43] geira |
metamod:damocles_upgrade [2022-05-31 09:29:32] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Checklist for upgrading production servers to 2.8 ====== | ||
- | Sites to be upgraded on damocles.met.no: | ||
- | |||
- | * 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 | ||
- | |||
- | ==== Metamod source ==== | ||
- | |||
- | cd / | ||
- | sudo svn co https:// | ||
- | sudo chown -R damocles.damocles trunk/ # needed for building | ||
- | |||
- | === PostgreSQL contribs === | ||
- | |||
- | Use version 8.3, copy to | ||
- | |||
- | ==== Site configuration ==== | ||
- | |||
- | This should ideally be setup via https:// | ||
- | |||
- | Must be repeated for each site. | ||
- | |||
- | === base directory === | ||
- | |||
- | To avoid complications with existing instances, put the new sites in ''/ | ||
- | |||
- | === Staticdata === | ||
- | |||
- | * upgrade staticdata/ | ||
- | * all <sc id=“x” type=“x”…> | ||
- | * add dataset_file_location and dataset_file_size (see app/ | ||
- | |||
- | === master_config === | ||
- | |||
- | cd / | ||
- | sudo -u damocles mkdir app | ||
- | sudo -u damocles cp / | ||
- | |||
- | Compare old master_config to default: | ||
- | |||
- | cd .. | ||
- | trunk/ | ||
- | gcwdemo/ | ||
- | |||
- | Upgrade master_config (see trunk/ | ||
- | |||
- | === Custom texts and styles === | ||
- | |||
- | Postponed until Phase 5 | ||
- | |||
- | |||
- | ===== 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 | ||
- | cd / | ||
- | target/ | ||
- | |||
- | **[DONE]** | ||
- | |||
- | ==== 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. | ||
- | |||
- | |||
- | --- // |