doc/book/en/admin/migration.rst
author Aurelien Campeas <aurelien.campeas@logilab.fr>
Mon, 26 Aug 2013 16:15:29 +0200
changeset 9257 ce338133c92c
parent 5371 6d25b84ffd50
child 10235 684215aca046
permissions -rw-r--r--
remove cw 3.9 bw compat (bw compat other than the interface -> adapter changes) - cwconfig, doc/admin/setup: docstring adjustment wrt 3.9 & virtualenv - testing/rst: windmill (which is gone from the testing infrastructure) - other docs: "stuff introduced in 3.9" cleanup, as we don't care about the version old features were introduced - server/hooky.py: bw compat for propagation hooks - server/schemaserial.py: pre CWUniqueTogetherConstraint migration support - web.__init__.py: dumps bw import - autoform.py: .action ppty is gone, also deprecate set_action and get_action - baseviews: CSVView.subvid gone long ago, secondary view removal - primary.py: _render_attribute & _render_relation signature change - reledit.py: rvid/default_value bw compat, should_edit_* dropped - webconfig.py: resourcefile is gone - formfields.py: old vocabulary handling - request.py: build_ajax_replace_url, external_resource Related to #2782004.

.. -*- coding: utf-8 -*-

Migrating cubicweb instances - benefits from a distributed architecture
=======================================================================

Migrate apache & cubicweb
-------------------------

**Aim** : do the migration for N cubicweb instances hosted on a server to another with no downtime.

**Prerequisites** : have an explicit definition of the database host (not default or localhost). In our case, the database is hosted on another host. You are not migrating your pyro server. You are not using multisource (more documentation on that soon).

**Steps** :

1. *on new machine* : install your environment (*pseudocode*) ::

     apt-get install cubicweb cubicweb-applications apache2

2. *on old machine* : copy your cubicweb and apache configuration to the new machine ::

    scp /etc/cubicweb.d/ newmachine:/etc/cubicweb.d/
    scp /etc/apache2/sites-available/ newmachine:/etc/apache2/sites-available/

3. *on new machine* : give new ids to pyro registration so the new instances can register ::

     cd /etc/cubicweb.d/ ; sed -i.bck 's/^pyro-instance-id=.*$/\02/' */all-in-one.conf

4. *on new machine* : start your instances ::

     cubicweb start

5. *on new machine* : enable sites and modules for apache and start it, test it using by modifying your /etc/host file.

6. change dns entry from your oldmachine to newmachine

7. shutdown your *old machine* (if it doesn't host other services or your database)

8. That's it.

**Possible enhancements** : use right from the start a pound server behind your apache, that way you can add backends and smoothily migrate by shuting down backends that pound will take into account.

Migrate apache & cubicweb with pyro
-----------------------------------

FIXME TODO