Moving from ubuntu 10 to Ubuntu 16

We have a really old server with ubuntu 10, and the plan is to move all the sites to a a newer Ubuntu 16 (virtual) machine (64bits).

The server has a lot (≈50) of old sites (some maybe 15 years).

I think one is 2.5.x, others are 'everything from 3.x to 5.0.
Every Zope has a few Plone sites, so there are about 15 Zope installation (using pythons from 2.4 to 2.7)

Some zope-instances have been installed with its own python ( probably python2.6) and a lot does not have a 'bootstrap.py' file.

All the sites are small, most are installed as standalone (and they dont need varnish / cache in front).


The plan is to move them from server A to server B, then upgrade server A, so we are sure they they are running while upgrading, and if 'something goes wrong'.


Any suggestions on how to do this the least painful way ? I love how bob templates lets you pip install requirements and then just edit the buildout.cfg file. Could it be possible to install 3.x sites and 4.x sites with pip ?

1 Like

You'll need old legacy Pythons your distribution does not offer. These you have to compile yourself. Extra care has to be taken to ensure openssl is linked correctly as otherwise setuptools and buildout cannot fetch packages from PyPi.

A second gotcha is whitelisting the new PyPa resources in the buildout configs.

And the old KGS is no more, but there is a dump of the pinnings somewhere.

These days you also do not need to boostrap, as you can just install zc.buildout into a virtualenv and use that (buildout on the $PATH provided by the virtualenv vs. bin/buildout).

Additionally, why not Ubuntu 18.04 at this point? Would again give you a longer breathing room before having to bother again.

1 Like

Regarding legacy Pythons, try https://github.com/pyenv/pyenv, they list older versions back till 2.1.3.
Not sure about the ssl part though...

trying to reinstall such old Plone versions will open a Pandora box for sure.

I recommend to skip that and focus on exporting the content using collective.jsonify and importing it on brand new Plone 5.1 deployments using Transmogrifier.

1 Like

Thanks for all the answers

Do I need all the different that originally were used? Or could every site that used Python-2.6 use 2.7 instead ?

If I copy everything from buildout-cache, and run bin/buildout -N (not newest), would that work ?

Does that mean that I can do (or similar):

virtualenv -p python2.4
install zc.buildout
copy the buildout.cfg (and maybe modify it a little)
run buildout
copy var folder (Data.fs and blobs for some 4.x sites)

And it might work ?

I'd not take brave jumps.

The C extensions would not be correctly linked.

Correct. This is in my opinion the easiest route to go for, so long as you can get a pip for the virtualenv. Or you can go very old school and just run the setup.py install of zc.buildout manually.

I'm not 100% on how far back the PyPa bootstrap efforts are compatible, but checking them out might be helpful anyway.

https://bootstrap.pypa.io/

I'd expect there to be a bit of back and forth in getting the details of the oldest ones right.

Good luck.

Seriously, do a full backup of everything. Running an old buildout or bootstrap in old installations can give lots of headaches.

Depending in how much you customized your installations, I would go with @hvelarde's approach: install transmogrifier on where you site is currently running, an import in a Plone 4 new server from scratch.

I'm assuming you're going to upgrade your Plone versions... or are you intended to just update Ubuntu and keep you Plone installations in the same version but running on new Ubuntu?

I would put every single site into an own docker build and run it isolated. You know, there are no security updates for such old Plones. I know @agitator did this with an inherited Plone 2.5 site. Also, I know he got some headache about it at first, but now it run smoothly.

1 Like

Yes, you absolutely need the original Python versions! You absolutely may NOT upgrade from 2.6 to 2.7, except on Plone 4.2.x installations.
See the compatibility table at https://training.plone.org/5/mastering-plone/installation.html#installing-plone

1 Like

I managed to move some Plone 3 sites, so I have started on some of the Plone 4.

So far all of them stop because they can not download some add-on, or requirements. Is there any reason why something that installs from buildout on Ubuntu 10 would not install on 16?

Like this:

Getting distribution for 'collective.js.jqueryui'.
Couldn't find index page for 'setuptools_git' (maybe misspelled?)
No local packages or download links found for setuptools-git
error: Could not find suitable distribution for        Requirement.parse('setuptools-git')
 An error occurred when trying to install collective.js.jqueryui   2.0.1. Look above this message for any errors that were output    by easy_install.