Project

General

Profile

action #26948

Updated by nicksinger about 7 years ago

## observation 
 boot/boot_from_pxe.pm just boots up the system without specifically adding a network device which the installer should use. This can result in somewhat random results if the machine has more then one interface (pretty common on real servers). From the linuxrc documentation: 

 <blockquote>Use netdevice to specify the interface (otherwise it tries all interfaces until things work).</blockquote>  

 ## steps There are multiple ways to reproduce 
 * Ran an IPMI job on an IPMI-worker with multiple network interfaces connected 
 * Observe how openQA gets stuck at bootup because there is a network-interface-selection showing implement this feature: 

 ## problem 
 The test cannot continue because it does not expect this interface selection. Connecting always only one interface does not represent the real world all the times (especially on servers). 


 ## suggestion 
 1. way: Specifically add the configured device to the kernel parameters: 

  linuxrc supports defining so called "netdevice"s if it should use a specific device: 
  install=$repo?device=00:25:90:c0:0b:1a 


  Pro: 
  * Simple to implement 

  Con: 
  * Needs some way to map MAC -> IP while no IP is assigned yet (means: looking up in the ARP-table will not work ;)). Could be realized by adding another value into the worker config 
  * Does not 100% represent how "real users" use the machines 


 2. way: Adjust test to try all known interfaces 

  This requires to adjust the test to not fail if the first connect does not work. Besides that the workerconf has to be expanded to contain _every_ possible interface of the server/SUT and also the DHCP/DNS config on qanet needs to be updated to handle every interface. 

  Ways to define all available interfaces: 
  1. Multiple comma separated values for SUT_IP in the worker config 
  2. Multiple A records behind the hostname of the SUT (`dig host.name.qa.suse.de A +short` would then return all configured IPs for that host) 

 3. way: maybe there are smarter solutions? 

 ## workaround 
 Use a worker with only one interface connected.

Back