5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CentOS7からAlmaLinuxへProxy環境下での移行(ELevate)

Last updated at Posted at 2022-05-25

TL;DR

追記:
leappをインストールしたら、次の様にproxy設定してから実際のコマンドを実行。

$ echo $https_proxy
https_proxy=http://proxy.example.co.jp:8080
$ sudo sed -i "/^enabled=.*/a proxy=$https_proxy" \
  /etc/leapp/files/leapp_upgrade_repositories.repo

はじめに

CentOS7.xから各種RHEL8.xベースのOSへインプレースアップグレードするには、ELevateというツールで可能。

Qiitaの記事で見つけたのはこちら、

問題点(Proxy環境下)

動作中のCentOS7上でまずパッケージ環境を/var/lib/leappにダウンロードして準備を行い、再起動で適用していく動作の様だが、このパッケージ群をdnfでダウンロードできなかった。

====> * target_userspace_creator
        Initializes a directory to be populated as a minimal environment to run binaries from the target system.
AlmaLinux 8 - BaseOS                            0.0  B/s |   0  B     00:00
AlmaLinux 8 - AppStream                         0.0  B/s |   0  B     00:00
AlmaLinux 8 - HighAvailability                  0.0  B/s |   0  B     00:00
AlmaLinux 8 - Extras                            0.0  B/s |   0  B     00:00
AlmaLinux 8 - PowerTools                        0.0  B/s |   0  B     00:00
AlmaLinux 8 - ResilientStorage                  0.0  B/s |   0  B     00:00
No match for argument: dnf
No match for argument: dnf-command(config-manager)

結果、sudo leapp preupgradeの段階でエラー終了する。

============================================================
                           ERRORS
============================================================

2022-05-05 10:10:10.123456 [ERROR] Actor: target_userspace_creator
Message: Unable to install RHEL 8 userspace packages.
Summary:
    Details: Command ['systemd-nspawn', '--register=no', '--quiet', '-D', '/var/lib/leapp/scratch/mounts/root_/system_overlay', '--setenv=LEAPP_NO_RHSM=0', '--setenv=LEAPP_EXPERIMENTAL=0', '--setenv=LEAPP_COMMON_TOOLS=:/etc/leapp/repos.d/system_upgrade/el7toel8/tools', '--setenv=LEAPP_COMMON_FILES=:/etc/leapp/repos.d/system_upgrade/common/files:/etc/leapp/repos.d/system_upgrade/el7toel8/files', '--setenv=LEAPP_UNSUPPORTED=0', '--setenv=LEAPP_EXECUTION_ID=5cf5ff2a-ddd2-40eb-8824-32809de9a6bc', '--setenv=LEAPP_HOSTNAME=centos7.internal.example.co.jp', 'dnf', 'install', '-y', '--nogpgcheck', '--setopt=module_platform_id=platform:el8', '--setopt=keepcache=1', '--releasever', u'8.4', '--installroot', '/el8target', '--disablerepo', '*', '--enablerepo', u'almalinux8-baseos', '--enablerepo', u'almalinux8-powertools', '--enablerepo', u'almalinux8-resilientstorage', '--enablerepo', u'almalinux8-extras', '--enablerepo', u'almalinux8-highavailability', '--enablerepo', u'almalinux8-appstream', 'dnf', 'dnf-command(config-manager)', '--disableplugin', 'subscription-manager'] failed with exit code 1.
    Stderr: Failed to create directory /var/lib/leapp/scratch/mounts/root_/system_overlay//sys/fs/selinux: Read-only file system
            Failed to create directory /var/lib/leapp/scratch/mounts/root_/system_overlay//sys/fs/selinux: Read-only file system
            Host and machine ids are equal (cc44730a6e0347cb8d7e5d87a0c496bb): refusing to link journals
            Failed to synchronize cache for repo 'almalinux8-baseos', ignoring this repo.
            Failed to synchronize cache for repo 'almalinux8-appstream', ignoring this repo.
            Failed to synchronize cache for repo 'almalinux8-highavailability', ignoring this repo.
            Failed to synchronize cache for repo 'almalinux8-extras', ignoring this repo.
            Failed to synchronize cache for repo 'almalinux8-powertools', ignoring this repo.
            Failed to synchronize cache for repo 'almalinux8-resilientstorage', ignoring this repo.
            Error: Unable to find a match: dnf dnf-command(config-manager)

============================================================
                       END OF ERRORS
============================================================

確認

ログ

sudo leapp preupgrade --verboseにて詳細表示するとcurlがProxyを使わず直接アクセスしようとしている。

repo: downloading from remote: almalinux8-baseos
AlmaLinux 8 - BaseOS                            0.0  B/s |   0  B     00:00
Cannot download 'https://mirrors.almalinux.org/mirrorlist/8/baseos': Cannot prepare internal mirrorlist: Curl error (7): Couldn't connect to server for https://mirrors.almalinux.org/mirrorlist/8/baseos [Failed to connect to 2600:1f18:448e:8a30:1553:55e7:ad8b:f77c: Network is unreachable].

設定確認

  • 一般的なhttps_proxy,HTTPS_PROXYなどが一通り設定してあってもダメ。
  • curlが使われている様なので、.curlrcを設定してもダメ。
  • /etc/dnf/dnf.confのことは忘れてました…(後述)(leappのインストールとともにdnfもCentOS7にインストールされる) →追記 preupgadeは成功するが実際のupgrade時に失敗する。

対応

leappは環境変数を見てくれないので、次の様にアップグレード用リポジトリーの設定にproxy設定を加える。

$ echo $https_proxy
https_proxy=http://proxy.example.co.jp:8080
$ sudo sed -i "/^enabled=.*/a proxy=$https_proxy" \
  /etc/leapp/files/leapp_upgrade_repositories.repo

後で調べる→やってみた

RHEL8系を触ったことがなくdnf環境は始めたなので、/etc/dnf/dnf.confにproxyを加える確認はしていなかった。まだまだCentOS7環境が残っているので、後日確認して見る予定。
↓追記
何度かのフェーズでアップグレードが行われるようで、まずはCentOS7上に入ったdnfが実行され、この時点では、/etc/dnf/dnf.confが参照される模様、その後、/var/lib/leapp/el8userspace/をルートにAlmaLinuxなりのEL8のイメージが展開され、そのフェーズでは、/var/lib/leapp/el8userspace/etc/dnf/dnf.confが参照される。ここは設定するタイミングなく実行されるので、この時にダウンロードに失敗していた。なので結局あらかじめ/etc/leapp/files/leapp_upgrade_repositories.repoにproxy設定を入れておくのが確実っぽい。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?