Open futureweb opened 1 year ago
Hello Andreas, Thank you for reaching out. Yes, we are currently exploring ways to support conversion inside containers, including Virtuozzo. However, we are not yet sure if it is possible. We will keep you informed of any progress on this matter through this issue. Best regards, Mikhail
Hello @SandakovMM,
Thank you for your response. As far as I know, Virtuozzo has already developed processes to perform this migration (without Plesk) successfully. I believe it would be beneficial if this feature is implemented in a similar manner as Virtuozzo's migration process, which can be found at https://github.com/vzlinux/vzupgrade. (https://docs.virtuozzo.com/virtuozzo_linux_8_quick_start_guide/converting-from-centos/converting-from-centos7.html)
Thank you, Andreas
Hello @futureweb Unfortunately, the news is not optimistic. We have investigated and it appears that there is no way to use Elevate (or any other Leapp-based tool) to convert the OS inside a container. This conclusion is based on two facts:
Therefore, there is no way to start the initrd inside a container. This is why the Leapp framework and as a result our current centos2alma tool cannot be used to convert the OS inside any container (e.g., Docker, Virtuozzo, etc).
Regarding vzupgrade, if I understand correctly, it is a tool to upgrade the bare-metal server that hosts virtual machines and containers. We have attempted to use it to convert a Virtuozzo container on our side without success. Additionally, there is the vzdeploy tool that can be used to convert CentOS 7 into VZLinux 7 inside a container. However, it simply reinstalls packages from the VZLinux repository within the container. As far as I can see, it cannot convert your CentOS 7 into VZLinux 8, for example. Therefore, it does not appear to be a solution to your problem.
We are also exploring other options for container owners:
I hope this information will be helpful in addressing your situation. Additionally, we will reach out to the Virtuozzo developers to inquire about their perspective on the problem.
Virtuozzo have a special script to convert CentOS 7 containers now. Unfortunately, it does not support Plesk. I believe we will be able to discuss it with virtuozzo developers some day and fix the problem.
@SandakovMM thank you very much for the update on this topic! :-) With Plesk Support this would be a really great deal! :-) Wish you a good start into the new year 24!
Hi,
As an active user of Plesk, I believe it would greatly enhance if support for the conversion process within Virtuozzo containers could be extended. Given that a significant number of users predominantly opt for VPS servers over dedicated ones, this feature would be highly valuable.
I wholeheartedly support the inclusion of this functionality and appreciate your attention to this matter. Thank you for your ongoing efforts!
Many thanks, Petru
Just chiming in to say I'd also love to see the option to convert a CentOS 7 Virtuozzo container running Plesk to AlmaLinux 8.
I totally understand the problems with using the existing tool - leapp essentially requires a bootloader within the container/VM, which OpenVZ/Virtuozzo does not have.
That means the only way to do this is by triggering the process from the host node to happen on the container, as that provides the same 'external' environment that booting into a temporary OS would. This is how the almaconvert8 project works.
And so rather than modifying the existing centos2alma project, it would make more sense for either:
I considered integrating the two myself, but I'm not as comfortable with Python as I likely need to be for an undertaking like this.
I've found Plesk devs to be more transparent about development plans these days than Virtuozzo devs have been, and so I think I would personally rather see (1) happen. Plus Plesk customers are also the only Virtuozzo/OpenVZ users to benefit from this, so that's another reason why it would make sense for Plesk devs take charge of this plan. At least they wouldn't have to start from scratch as the almaconvert8 project should cover everything needed except for the Plesk-specific stuff.
Got my fingers crossed!
Light amusement... when running almaconvert8 on an OpenVZ node, like almaconvert8 convert $CTID
where the container has Plesk installed it says:
CTID: Conversion aborted: Software unsupported by AlmaLinux 8 detected: Plesk
Please contact the software vendor and request AlmaLinux 8 support
Hey Plesk devs: this is my request! ;)
Tried removing Plesk
and plesk
from the list of blocker packages and running it. Got to the transaction test phase where it replaces all the packages and errored out with what appears to be very basic version conflicts:
Error: Transaction check error:
file /usr/lib64/.libcrypto.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/.libssl.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/engines-1.1/capi.so from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/engines-1.1/padlock.so from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/libcrypto.so.1.1.1k from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/libssl.so.1.1.1k from install of openssl-libs-1:1.1.1k-5.vl8.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/RECORD from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/__init__.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/__init__.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/__main__.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/__main__.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/basecommand.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/basecommand.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/baseparser.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/baseparser.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/cmdoptions.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/cmdoptions.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/download.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/download.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/exceptions.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/__pycache__/exceptions.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
[...]
file /usr/lib/python3.6/site-packages/pip/req/__pycache__/req_set.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/req/__pycache__/req_set.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/req/__pycache__/req_uninstall.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/req/__pycache__/req_uninstall.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/__init__.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/__init__.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/appdirs.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/appdirs.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/build.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/build.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/deprecation.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/deprecation.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/encoding.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/encoding.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/filesystem.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/filesystem.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/glibc.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/glibc.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/hashes.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/hashes.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/logging.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/logging.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/outdated.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/outdated.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/packaging.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/packaging.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/setuptools_build.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/setuptools_build.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/ui.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/utils/__pycache__/ui.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/__init__.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/__init__.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/bazaar.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/bazaar.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/git.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/git.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/mercurial.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/mercurial.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/subversion.cpython-36.opt-1.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/subversion.cpython-36.pyc from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
file /usr/lib/python3.6/site-packages/pip/vcs/git.py from install of platform-python-pip-9.0.3-22.vl8.noarch conflicts with file from package python3-pip-9.0.3-8.el7.noarch
Error Summary
-------------
Error: /usr/share/vzyum/bin/yum failed, exitcode=1
Failed to upgrade container from 7 to 8 family
I've gotten around the above conflicts by removing those packages before beginning (similar to what centos2alma does, from what I can see in the code), however no matter what packages I remove ahead of time, it always gets to a point where it wants to remove basically all plesk-* packages, then fails due to some dependency or another. That's hardly a surprise given just how many packages Plesk installs.
The elevate-cpanel tool provides an option under the heading "Using an alternative tool to upgrade your distro" that's described like this:
Using the --no-leapp option gives you a way to do the actual distro upgrade in your own way. This, for instance, can be used to allow Virtuozzo systems to upgrade cPanel systems, which are not supported by Leapp.
And sure enough in the almaconvert8 utility from Virtuozzo, they utilize that function to prepare the system before completing the OS packages changes:
subprocess.run(['/sbin/vzctl', 'exec', ct, "/scripts/elevate-cpanel","--no-leapp", "--non-interactive", "--start"])
It sure would be nice if we could have a --no-leapp
option in the centos2alma utility. It's already got stages like --finish, so why not a --prepare
option, so we could:
centos2alma --prepare
within the container to do the same things that it does before running elevate/leappalmaconvert8
on the parent node to handle the same parts as leapp would do, thencentos2alma --finish
within the container to complete the processThat way Plesk devs wouldn't be responsible for ensuring this all works; just that the ability is there for others to help make it work.
I was able to make this all work using Virtuozzo's almaconvert8
utility by saving the list of Plesk components, removing Plesk packages, running almaconvert8, then reinstalling the packages, restoring original config files, and then running a Plesk repair.
This has been scripted and published here: https://github.com/websavers/centos2alma_openvz
Please note:
Because of this, I strongly recommend that you only use this IF:
I look forward to the community engagement on it. Feel free to submit issues and pull requests, but I can't guarantee that I'll have the time to devote to directly addressing issues unless they directly affect our own usage.
Enjoy!
Great work, thank you! In regards to virtuozzo containers support in centos2alma, we currently do not have enough resources to support conversion inside virtuozzo containers. So your tool will be very helpful for anyone looking to switch their container to a new distro. I hope to be able to add the --no-leapp option by the end of this summer.
Hello, are there plans to support conversion inside containers? (Virtuozzo?) As all our Plesk Servers are running within Virtuozzo Containers ... :-( Thank you Andreas Futureweb GmbH