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 considered almost optional.
** 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
** In progress.  
** [[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

Overall design

  1. Daily rawhide compose completes. We get signal.
  2. Rawhide gets synced up.
  3. Each client machine is instructed to run koan to install the new rawhide.
    • This might happen via func or some other mechanism.
  4. 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.
  5. If something fails during install
    • anacdump.txt appears, or no log data for 30min
    1. Use cobbler to change the PXE target to reinstall stable OS:
      • cobbler system edit --name=NAME --netboot-enabled=1
    2. Use power control to restart the machine
    3. Close log task with status FAIL
  6. 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
  7. 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.