lib/guest_installation_and_configuration_base.pm

prepare_non_transactional_environment

  prepare_non_transactional_environment($self)

Do preparation on non-transactional server.

config_guest_memory

  config_guest_memory($self [, guest_memory => 'memory'] [, guest_memballoon => 'memballoon']
  [, guest_memdev => 'memdev'] [, guest_memtune => 'memtune'] [, guest_memorybacking => 'memorybacking'])

Configure [guest_memory_options]. User can still change [guest_memory],[guest_memballoon], [guest_memdev], [guest_memtune] and [guest_memorybacking] by passing non-empty arguments using hash. If installation already passes, modify_guest_params will be called to modify [guest_memory], [guest_memballoon], [guest_memdev], [guest_memtune] and [guest_memorybacking] using already modified [guest_memory_options].

config_guest_security

  config_guest_security($self [, guest_seclabel => 'seclabel'] [, guest_launchsecurity => 'launchsecurity'])

Configure [guest_security_options]. User can still change [guest_security] and [guest_launchsecurity] by passing non-empty arguments using hash. If installation already passes, modify_guest_params will be called to modify guest_security] and [guest_launchsecurity] using already modified [guest_security_options].

config_guest_controller

  config_guest_controller($self [, guest_controller => 'controller'])

Configure [guest_controller_options]. User can still change [guest_controller] by passing non-empty arguments using hash. [guest_controller] can have more than one type controller which should be separated by hash symbol, for example, "controller1 _config#controller2_config#controller3_config". Then it will be splitted and passed to individual "--controller" argument to form [guest_controller_options] = "--controller controller1_config --controller controller2_config --controller controller3_config". If installation already passes, modify_guest_params will be called to modify [guest_controller] using already modified [guest_controller_options].

config_guest_rng

  config_guest_rng($self [, guest_rng => 'rng'])

Configure [guest_rng_options]. User can still change [guest_rng] by passing non-empty arguments using hash. If installations already passes, modify_guest_params will be called to modify [guest_rng] using already modified [guest_rng_options].

write_guest_network_bridge_device_config

  write_guest_network_bridge_device_config($self, _name => $_name [, 
  _ipaddr => $_ipaddr, _bootproto => $_bootproto, _startmode => $_startmode, 
  _zone => $_zone, _bridge_type => $_bridge_type, _bridge_ports => $_bridge_ports, 
  _bridge_stp => $_bridge_stp, _bridge_forwarddelay => $_bridge_forwarddelay])

Write network device settings to conventional /etc/sysconfig/network/ifcfg-* or /etc/NetworkManager/system-connections/*.nmconnection depends on whether system network is managed by NetworkManager or not. The supported arguments are listed out as below: $_ipaddr: IP address/mask length pair of the interface $_name: Identifier of the interface $_bootproto: DHCP automatic or manual configuration, 'static', 'dhcp' or 'none' $_startmode: Auto start up or connection: 'auto', 'manual' or 'off' $_zone: The trust level of this network connection $_bridge_type: 'master' or 'slave' to indicate master or slave interface $_bridge_port: Specify interface's master or slave interface name $_bridge_stp: 'on' or 'off' to turn stp on or off $_bridge_forwarddelay: The stp forwarding delay in seconds If $_ipaddr given is empty, it means there is no associated specific ip address to this interface which might be attached to another bridge interface or will not be assigned one ip address from dhcp, so set $_ipaddr to '0.0.0.0'.If $_ipaddr given is non-empty but not in ip address format,for example, 'host-default',it means the interface will not use a ip address from pre-defined subnet and will automically accept dhcp ip address from public facing host network.

write_guest_network_bridge_device_ifcfg

  write_guest_network_bridge_device_ifcfg($self, _name => $_name [, 
  _ipaddr => $_ipaddr, _name => $_name, _bootproto => $_bootproto, 
  _startmode => $_startmode, _zone => $_zone, _bridge_type => $_bridge_type, 
  _bridge_ports => $_bridge_ports, _bridge_stp => $_bridge_stp, 
  _bridge_forwarddelay => $_bridge_forwarddelay])

Write bridge device config file to /etc/sysconfig/network/ifcfg-*. Please refer to https://github.com/openSUSE/sysconfig/blob/master/config/ifcfg.template for config file content.

write_guest_network_bridge_device_nmconnection

  write_guest_network_bridge_device_nmconnection($self, _name => $_name [, 
  _ipaddr => $_ipaddr, _name => $_name, _bootproto => $_bootproto, 
  _startmode => $_startmode, _zone => $_zone, _bridge_type => $_bridge_type, 
  _bridge_ports => $_bridge_ports, _bridge_stp => $_bridge_stp, 
  _bridge_forwarddelay => $_bridge_forwarddelay])

Write bridge device config file to /etc/NetworkManager/system-connections/*. NM settings are a little bit different from ifcfg settings, but there are definite mapping between them. So translation from well-known and default ifcfg settings to NM settings is necessary. Please refer to nm-settings explanation as below: https://developer-old.gnome.org/NetworkManager/stable/nm-settings-keyfile.html

activate_guest_network_bridge_device

  activate_guest_network_bridge_device($self, _bridge_name => $_bridge_name)

Activate guest network bridge device by using wicked or NetworkManager depends on system configuration. And also validate whether activation is successful or not.

schedule_tasks_on_boot

  schedule_tasks_on_boot($self, _task => $task)

Schedule tasks to be executed on system boot up, please refer to these documents: https://docs.oracle.com/en/learn/oracle-linux-crontab/ for using crontab utility and https://linuxconfig.org/how-to-schedule-tasks-with-systemd-timers-in-linux for for using systemd service and timer. In order to schedule a task successfully, the _task argument should not be empty.

schedule_tasks_on_boot_crontab

  schedule_tasks_on_boot_crontab($self, _task => $task)

Schedule tasks on system boot up by using crontab utility.

schedule_tasks_on_boot_systemd

  schedule_tasks_on_boot_systemd($self, _task => $task)

Schedule tasks on system boot up by using systemd service and timer.