From Fedora Project Wiki
< QA
(Design for automated installer testing) |
(add info about pxe_just_once / --netboot-enabled) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
** Roughly 15G per arch. Ouch. | ** Roughly 15G per arch. Ouch. | ||
* One test machine per arch - i386, x86_64, and ppc. | * One test machine per arch - i386, x86_64, and ppc. | ||
** ppc is | ** ppc is ''almost'' optional. | ||
** KVM/QEMU/Xen could be used on the server machine to test in virtual guests. | ** KVM/QEMU/Xen could be used on the server machine to test in virtual guests. | ||
** Must be PXE-capable | ** Must be PXE-capable, and configured to boot PXE '''before''' the hard drive | ||
* Some form of power control | * Some form of power control | ||
** This could be non-automated - "if the machine is dead, hit the power button". | ** This could be non-automated - "if the machine is dead, hit the power button". | ||
Line 17: | Line 17: | ||
** See http://fedorahosted.org/cobbler/ for more details | ** See http://fedorahosted.org/cobbler/ for more details | ||
** Note that {{package|snake}} is still being considered but cobbler/koan seem to be much better. | ** Note that {{package|snake}} is still being considered but cobbler/koan seem to be much better. | ||
** <code>pxe_just_once: 1</code> in <code>/etc/cobbler/settings</code> | |||
* Rawhide sync script | * Rawhide sync script | ||
** http://jkeating.fedorapeople.org/sync-rawhide.py is an example script | ** http://jkeating.fedorapeople.org/sync-rawhide.py is an example script | ||
** Or you could just let cobbler handle it. | ** Or you could just let cobbler handle it. | ||
* logging client/server | * logging client/server | ||
** | ** [[User:jlaska|jlaska]] maintains a cobbler git branch that adds automated remote logging of installs (and PPC support!): <code>git://fedorapeople.org/~jlaska/cobbler.git</code>. | ||
** Enhanced logging patchset has been submitted to cobbler upstream for inclusion in 1.5: https://fedorahosted.org/pipermail/cobbler/2008-December/001942.html | |||
== Overall design == | == Overall design == | ||
Line 33: | Line 35: | ||
#** <code>/tmp: anaconda.log, syslog, ks-script.log, anacdump.txt, modprobe.conf</code> | #** <code>/tmp: anaconda.log, syslog, ks-script.log, anacdump.txt, modprobe.conf</code> | ||
#** <code>/mnt/sysimage/root: install.log, upgrade.log</code> | #** <code>/mnt/sysimage/root: install.log, upgrade.log</code> | ||
#* This is all handled by the 'anamon' code in jlaska's cobbler git tree. | |||
# If something fails during install | # If something fails during install | ||
#* <code>anacdump.txt</code> appears, or no log data for 30min | #* <code>anacdump.txt</code> appears, or no log data for 30min | ||
## Use cobbler to change the PXE target to reinstall stable OS | ## Use cobbler to change the PXE target to reinstall stable OS: | ||
##* <code>cobbler system edit --name=NAME --netboot-enabled=1</code> | |||
## Use power control to restart the machine | ## Use power control to restart the machine | ||
## Close log task with status FAIL | ## Close log task with status FAIL |
Latest revision as of 22:19, 19 December 2008
These are the current plans for automated testing of the installer. The specific goal is this: perform daily, basic, fully-automatic installations of Rawhide, and report the results to a public web page.
Hardware
- One server machine with enough disk space for a local mirror of rawhide
- Roughly 15G per arch. Ouch.
- One test machine per arch - i386, x86_64, and ppc.
- ppc is almost optional.
- KVM/QEMU/Xen could be used on the server machine to test in virtual guests.
- Must be PXE-capable, and configured to boot PXE before the hard drive
- Some form of power control
- This could be non-automated - "if the machine is dead, hit the power button".
Software
cobbler
andkoan
- See http://fedorahosted.org/cobbler/ for more details
- Note that
snake
is still being considered but cobbler/koan seem to be much better. pxe_just_once: 1
in/etc/cobbler/settings
- Rawhide sync script
- http://jkeating.fedorapeople.org/sync-rawhide.py is an example script
- Or you could just let cobbler handle it.
- logging client/server
- jlaska maintains a cobbler git branch that adds automated remote logging of installs (and PPC support!):
git://fedorapeople.org/~jlaska/cobbler.git
. - Enhanced logging patchset has been submitted to cobbler upstream for inclusion in 1.5: https://fedorahosted.org/pipermail/cobbler/2008-December/001942.html
- jlaska maintains a cobbler git branch that adds automated remote logging of installs (and PPC support!):
Overall design
- Daily rawhide compose completes. We get signal.
- Rawhide gets synced up.
- Each client machine is instructed to run koan to install the new rawhide.
- This might happen via
func
or some other mechanism.
- This might happen via
- A
%pre
script in the kickstart runs the logging client- Watch the following log files:
/tmp: anaconda.log, syslog, ks-script.log, anacdump.txt, modprobe.conf
/mnt/sysimage/root: install.log, upgrade.log
- This is all handled by the 'anamon' code in jlaska's cobbler git tree.
- Watch the following log files:
- If something fails during install
anacdump.txt
appears, or no log data for 30min
- Use cobbler to change the PXE target to reinstall stable OS:
cobbler system edit --name=NAME --netboot-enabled=1
- Use power control to restart the machine
- Close log task with status FAIL
- Otherwise:
%post
script in kickstart creates a service to run on firstboot- Send system startup logs (to be checked for errors)
- Send signal to logging server to close task with status OK
- Logging server checks over collected logs for errors
- avc errors in
/var/log/messages
, FAILED in/var/log/boot.log
, etc. - Change status to WARN if found.
- avc errors in