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:39:46] 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: | + | |
| - | + | ||
| - | **[DONE]** | + | |
| - | + | ||
| - | ==== 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. | + | |
| - | + | ||
| - | + | ||
| - | --- // | + | |