Revision 14dd0353
Added by Ohad Levy over 13 years ago
- ID 14dd0353b2c7d16084a13c7b1ab52630887cabe3
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)
|
app/models/host.rb | ||
---|---|---|
false
|
||
end
|
||
|
||
# Returns a url pointing to boot file
|
||
def url_for_boot file
|
||
"#{os.media_uri(self)}/#{os.url_for_boot(file)}"
|
||
end
|
||
|
||
private
|
||
# align common mac and ip address input
|
||
def normalize_addresses
|
app/models/redhat.rb | ||
---|---|---|
"kickstart"
|
||
end
|
||
|
||
def url_for_boot(file)
|
||
PXEDIR + "/" + PXEFILES[file]
|
||
end
|
||
|
||
end
|
app/views/unattended/gpxe_kickstart_config.erb | ||
---|---|---|
#!gpxe
|
||
kernel <%= "#{@host.url_for_boot(:kernel)}" %> ks=<%= foreman_url("kickstart")%>/static=yes ksdevice=bootif network kssendmac ip=${net0/ip} netmask=${net0/netmask} gateway=${net0/gateway} dns=${net0/dns}
|
||
initrd <%= "#{@host.url_for_boot(:initrd)}" %>
|
||
|
||
boot
|
app/views/unattended/kickstart.rhtml | ||
---|---|---|
<%= "selinux --disabled\n" if @osver != 3 -%>
|
||
keyboard us
|
||
skipx
|
||
network --bootproto dhcp
|
||
network --bootproto <%= @static ? "static" : "dhcp" %> --hostname <%= @host %>
|
||
rootpw --iscrypted <%= root_pass %>
|
||
firewall --disabled
|
||
authconfig --useshadow --enablemd5 <%= @osver != 3 and @osver != 4 ? '--disablenis' : '' %>
|
||
... | ... | |
<% else -%>
|
||
<%= @host.diskLayout %>
|
||
<% end -%>
|
||
skipx
|
||
text
|
||
reboot
|
||
|
Also available in: Unified diff
fixes #470 - Add gpxe scripts support
This commit implements the following: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>
kernel http://foreman/unattended/gpxe_kickstart_config
boot