Project

General

Profile

« Previous | Next » 

Revision 14dd0353

Added by Ohad Levy over 13 years ago

  • ID 14dd0353b2c7d16084a13c7b1ab52630887cabe3

fixes #470 - Add gpxe scripts support

This commit implements the following:
  • dynamic gpxe script that kickstart purly with gpxe - see usage example below
  • add static network option to kickstart, ie if added ?static=true to the url, network configuration would be static
    at the moment this should only be used with gpxe, or alternatviily you would need to
    provide the network information as a kernel argument (see gpxe_kickstart_config file as an example for that.

gpxe usage example

press ctrl-b for interactive mode
#get network from dhcp
dhcp net0
#or set static
ifopen
set net0/ip <your host ip>
set net0/netmask <netmask>
set net0/gateway <your gateway>
set net0/dns <dns server>

  1. tell gpxe to ask foreman for instructions
    kernel http://foreman/unattended/gpxe_kickstart_config
    boot

View differences:

app/controllers/unattended_controller.rb
class UnattendedController < ApplicationController
layout nil
before_filter :get_host_details, :allowed_to_install?, :except => [:pxe_kickstart_config, :pxe_debian_config]
before_filter :handle_ca, :except => [:jumpstart_finish, :preseed_finish, :pxe_kickstart_config, :pxe_debian_config]
before_filter :handle_ca, :except => [:jumpstart_finish, :preseed_finish, :pxe_kickstart_config, :gpxe_kickstart_config, :pxe_debian_config]
skip_before_filter :require_ssl, :require_login, :authorize, :load_tabs, :manage_tabs
after_filter :set_content_type, :only => [:kickstart, :preseed, :preseed_finish,
:jumpstart_profile, :jumpstart_finish, :pxe_kickstart_config, :pxe_debian_config]
:jumpstart_profile, :jumpstart_finish, :pxe_kickstart_config, :gpxe_kickstart_config, :pxe_debian_config]
before_filter :set_admin_user, :only => :built
def kickstart
......
@mediapath = os.mediapath @host
@epel = os.epel @host
@yumrepo = os.yumrepo @host
# force static network configurtion if static http parameter is defined, in the future this needs to go into the GUI
@static = !params[:static].empty?
unattended_local "kickstart"
end
......
@initrd = "#{prefix}-#{Redhat::PXEFILES[:initrd]}"
end
# Returns a valid GPXE config file to kickstart hosts
def gpxe_kickstart_config
end
def pxe_debian_config
@host = Host.find_by_name params[:host_id]
prefix = @host.operatingsystem.pxe_prefix(@host.arch)

Also available in: Unified diff