Description of problem:
Unable to perform minimal RHEL6 installation via VNC on beaker host.
Probably not reporting against the right component, feel free to reasign.
Version-Release number of selected component (if applicable):
100% on two different ppc64 machines, but don't think it's arch specific.
Steps to Reproduce:
1. Submit a bkr reserve job with manual/vnc options.
2. Connect via vnc, set 'Use whole diskspace' (probably not needed)
3. Select 'Minimal' variant
4. Use 'Customize Later' (probably not needed)
5. Start the installation and watch console for following error
/tmp/ks-script-K4Aser: line 205: wget: command not found
chmod: cannot access `/etc/rc.d/init.d/koan': No such file or directory
error reading information on service koan: No such file or directory
/tmp/ks-script-K4Aser: line 229: wget: command not found
/tmp/ks-script-K4Aser: line 230: wget: command not found
/tmp/ks-script-K4Aser: line 231: wget: command not found
Successful installation. Install wget or workaround the wget-dependent script.
Forgot to mention Release number. Reproducible in:
Please attach the kickstart file you are using. wget is present in the installation environment. It's in /sbin.
(In reply to comment #3)
> Please attach the kickstart file you are using. wget is present in the
> installation environment. It's in /sbin.
I am not using any custom kickstart. Just clicked Scheduler -> Reserve in Beaker WebUI, then selected arch and distro, clicked Auto pick system. Filled 'manual' to KickStart MetaData field and 'vnc' to Kernel Options (install) field. Submitted by clicking on Queue job button.
(In reply to comment #0)
> Actual results:
> /tmp/ks-script-K4Aser: line 205: wget: command not found
> chmod: cannot access `/etc/rc.d/init.d/koan': No such file or directory
> error reading information on service koan: No such file or directory
> /tmp/ks-script-K4Aser: line 229: wget: command not found
> /tmp/ks-script-K4Aser: line 230: wget: command not found
> /tmp/ks-script-K4Aser: line 231: wget: command not found
"/tmp/ks-script-K4Aser" means a kickstart file is in use. Beaker generates these, I believe.
Log in as root to the host you are trying to install on once the installation is running (successful or not) and collect the log files and the /tmp/ks-script* file from /tmp and attach it to this bug report. Please attach them individually as plain text files.
(In reply to comment #5)
> Log in as root to the host you are trying to install on once the installation
> is running (successful or not) and collect the log files and the
> /tmp/ks-script* file from /tmp and attach it to this bug report. Please attach
> them individually as plain text files.
How should I log in to the machine? I'm getting "Connection refused" on every ssh attempt to the machine during the installation, serial console seems to be read-only (excluding the language prompt at the beginning of the install process).
Installation hangs with 'Running post-installation scripts' on the screen, errors from comment 0 on the serial console. When the host is rebooted, it begins new installation.
I can attach the install process serial console output.
I will also attach kickstart file from similar job, where 'Basic server' instead of 'Minimal' was selected. In that job this bug haven't occur, so I was able to get the kickstart file.
How can be ssh access enabled during the install process? Or how should I get the kicstart file from the not-yet-installed machine?
thanks in advance
Created attachment 521034 [details]
Console output when the bug occurs
Created attachment 521035 [details]
kickstart file from job where bug did not occur, 'basic server' was selected instead of 'minimal' variant
It looks like Minimal does not include wget which this kickstart's %post depends on. Does installation succeed if you do a minimal+wget install?
The problem shows up when 'Customize now' is used instead 'Customize later'. When 'Basic server' selected, 'Customize now' shows several groups selected.
It seems 'Minimal' does preselect nothing. Selecting 'Base' group solves this bug (wget is part of Base group).
Either the beaker kickstart file needs to be changed to not use wget, or to include wget in the list of packages to install, or comps needs to include wget as part of the Minimal package set.
python will always be present right? If so then we should be able implement the basics of wget in python itself.
ryang, Is this something you feel comfortable enough doing?
Created attachment 521783 [details]
simple implement of wget
attached a simple wget implement in python. It only can download files. Not support any other functions in wget.
@bpeck, is this enough for use?
We should also change cobbler snippet for auto provision kicktemplate.
Add something like this properly:
if [ -d /usr/bin/wget ] ; then
rpm -q wget
if [ $? != 0 ]; then
The two snippet using wget are
post_koan:wget -O /etc/rc.d/init.d/koan "http://$server/beaker/koan.init"
rhts_post:/usr/bin/wget -N http://$server/beaker/$yum
The problem now is where to put wget.py script. If know the script place in test machine. We can change the snippet.
And in wget.py I use urllib and sys modules. They should all belong to basic python installation, right?
And what about the issue described in comment 10? Isn't it necessary to pre-select the Base package group?
Using 'different wget' may solve the original issue from bug description, but will the installation succeed when Base group is not selected?
Another possibility is to use /usr/bin/urlgrabber, which is part of python-urlgrabber (a dependency of yum).
(In reply to comment #17)
> Another possibility is to use /usr/bin/urlgrabber, which is part of
> python-urlgrabber (a dependency of yum).
Except we use wget to install yum on rhel3/4 :-)
I install successed with only @Base and @Core for packages setting in kickstart.
But always got error
"Checking dmesg for specific failures!
WARNING: CPU#0: NMI appears to be stuck (0->0)!
End of log.
Strange the error will not occur if more package is selected.
Find in runtest.sh of rh-tests-distribution-install-default
Is it means the test failed.
And I have tried RHEL-6-GOLD-Client-x86_64, Is it necessary to test it in more distro.
And I changed all wget in 6 snippet files, They are:
Not all of them can be find in beaker/LabController/snippets folder. Where can i submit new one?
That initial error is a RHEL bug on kvm systems I believe. In fact I think if you install 6.1 you won't see it.
The other snippets using wget come from cobbler. We'll have to get those fixed upstream. In fact we should probably get wget.py upstream in cobbler.
Can you handle that? If not I can take over and submit a patch to upstream cobbler.
I can do that. First I will push the beaker part patch to gerrit for review. If no problem I'll push the rest snippets to cobbler upstream. Got some change in wget.py.
*** Bug 861086 has been marked as a duplicate of this bug. ***
In bug 861086 mganisin suggests using curl. If that is always available, it might be simpler to switch to that, than trying to include our own minimal wget in Python.
Actually I think curl isn't present in RHEL5 minimal installation. However RHEL5 minimal is missing many critical packages (dhclient for example), so it should not be a blocker for this issue and usage of curl seems to be fine from el6 point of view and it should be fine also for future releases.
any update on this bug? We really want this to be fixed ASAP since it breaks various tests in Beaker. Moreover, machines keep reinstalling, which also reduces our resources (tests lasts for 10 hours instead of 1, for example)..
I don't see target milestone set unfortunately. However this bug is quite critical. Due to current state of most recent versions of installer just minimal package set is installed by default (without wget) and testing is effectively blocked in some cases. Custom provisioning is one of important affected areas. According to several proposed solutions implementation of bugfix seems to be quite simple.
Please look at this issue, consider its priority once more and try to fix it today. ;) Thank you very much in advance.
This is not trivial to fix. We already in the past switched from python to wget for making these calls, because some variant of RHEL3 s390x (I don't remember which) lacked python on the installed system. You have suggested using curl, but are you sure that it is available in all variants of all arches of RHEL3 upwards? I don't know of any nice automated way to find a list of installed packages for every kind of installation we have to support in Beaker, so there is a lot of testing involved.
The best fix is probably to switch back to making the calls with python using xmlrpclib but in %post --nochroot, since Anaconda is written in python so it must always be present in the installer image.
The other thing is we could change this for RHEL6 kickstarts only, and leave the other distros as is. That would reduce the amount of testing needed. Judging by the comments on this bug it is only RHEL6 minimal installs which people care about, not any earlier releases.
In gerrit: http://gerrit.beaker-project.org/#/c/1432/
(In reply to comment #27)
> This is not trivial to fix. We already in the past switched from python to
> wget for making these calls, because some variant of RHEL3 s390x (I don't
> remember which) lacked python on the installed system. You have suggested
> using curl, but are you sure that it is available in all variants of all
> arches of RHEL3 upwards?
Quick check made me quite sure. However I am almost sure wget isn't available in any minimal installation.
> The best fix is probably to switch back to making the calls with python
> using xmlrpclib but in %post --nochroot, since Anaconda is written in python
> so it must always be present in the installer image.
Yes, this sounds like a good idea.
(In reply to comment #31)
> (In reply to comment #27)
> > This is not trivial to fix. We already in the past switched from python to
> > wget for making these calls, because some variant of RHEL3 s390x (I don't
> > remember which) lacked python on the installed system. You have suggested
> > using curl, but are you sure that it is available in all variants of all
> > arches of RHEL3 upwards?
> Quick check made me quite sure. However I am almost sure wget isn't
> available in any minimal installation.
Are you implying that 'curl' is present in RHEL 3/4/5 in the minimal install for all supported architectures?
(In reply to comment #34)
> (In reply to comment #31)
> > Quick check made me quite sure. However I am almost sure wget isn't
> > available in any minimal installation.
> Are you implying that 'curl' is present in RHEL 3/4/5 in the minimal install
> for all supported architectures?
Unfortunately not. Anyway I would not care about older releases a lot. For example minimal installation of RHEL 5 is missing other important stuff like dhcp client or even yum. Present and future matters. ;)
Btw. yesterday in a bath I realized quite solid solution:
1. do wget,
2. if it fails, do curl,
3. if it fails do python
* do not chroot!
I am almost sure, this will work in any situation on any distro. (I don't indicate that current proposal is wrong though)
The final solution uses 'wget' in the %pre install stages and 'curl' for all in %post for all RHEL 6+ and Fedora releases.
Final patch: http://gerrit.beaker-project.org/#/c/1432/
What's the current status of this change? RHEL 7.0 still shows this as a test blocker.
It will be included in the upcoming Beaker 0.10 scheduled to be released on November 21.
This has now been released