Bug 1920735
Summary: | Variables in /etc/dnf/vars are not expanded in the Installer environment | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Brian Stinson <bstinson> | ||||
Component: | anaconda | Assignee: | Radek Vykydal <rvykydal> | ||||
Status: | CLOSED ERRATA | QA Contact: | Release Test Team <release-test-team-automation> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | CentOS Stream | CC: | bryonadams, bstinson, carl, davide, jblazek, jikortus, jkonecny, jstodola, jwboyer, mmcgrath, pkotvan, rvykydal | ||||
Target Milestone: | rc | Keywords: | Triaged | ||||
Target Release: | 8.0 | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | anaconda-33.16.4.11-1 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2021-05-18 15:47:16 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Brian Stinson
2021-01-26 23:54:29 UTC
Thanks for opening this Brian. This is one of those quality of life things and since it happens at install time we really should fix this as soon as we can. Unfortunately no config files are automatically loaded when dnf is used via API. At the moment all the work must be done on the client side (anaconda in this case). Here is an example how to load main configuration and variables definitions using dnf API: import dnf base = dnf.Base() # load the main dnf.conf (I'm not sure if this makes sense in anaconda use case) # the dnf.conf might specify different location of varsdir base.conf.read(priority=dnf.conf.PRIO_MAINCONFIG) # load variables substitutions from base.conf.varsdir, default value for varsdir is ("/etc/yum/vars/", "/etc/dnf/vars/") # the varsdir is searched under the installroot location. So if the varsdir is located on the host (outside the installroot) # then you have to use "/" as installroot in this call base.conf.substitutions.update_from_etc(installroot=base.conf.installroot, varsdir=base.conf.varsdir) # now variables are set and you should be able to load repositories and do what you need to do base.read_all_repos() base.fill_sack() ... (see https://dnf.readthedocs.io/en/latest/api_conf.html#dnf.conf.Conf for more information) This patch fixes the issue for me: https://github.com/rhinstaller/anaconda/pull/3139 *** Bug 1910816 has been marked as a duplicate of this bug. *** Reproduced with anaconda-33.16.4.9-1 Verified with anaconda-33.16.4.11-1 and updates.img containing files etc/dnf/vars/stream and etc/dnf/vars/infra with the appropriate content. It was possible to install from the "http://mirrorlist.centos.org/?release=$stream&arch=x86_64&repo=BaseOS&infra=$infra" mirrorlist entered in the anaconda GUI. It also works fine for $variable specified in kickstart in the url command. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (anaconda bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:1844 |