Sha256: 6e59fe69da948b509fedcc5db82fc3d8445e0a88830bec63c5c5620c2d4e3ed0

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

#!ipxe
# Example foreman_bootdisk host template
# This template is rendered for use inside a host-specific boot disk.
#
# Copy this template to customize it, the original is read-only.

<%
raise ::Foreman::Exception.new(N_('Host has no IP address defined')) if @host.ip.empty?
raise ::Foreman::Exception.new(N_('Host has no subnet defined')) if @host.subnet.nil?
raise ::Foreman::Exception.new(N_('Host has no domain defined')) if @host.domain.nil?
raise ::Foreman::Exception.new(N_('Subnet (%s) has no gateway defined'), @host.subnet) if @host.subnet.gateway.empty?
raise ::Foreman::Exception.new(N_('Subnet (%s) has no primary DNS server defined'), @host.subnet) if @host.subnet.dns_primary.empty?
%>

# loop over net* until the host's MAC matches
<% (0..32).each do |i| -%>
:net<%= i %>
isset ${net<%= i -%>/mac} || goto no_nic
echo net<%= i -%> is a ${net<%= i -%>/chip} with MAC ${net<%= i -%>/mac}
iseq ${net<%= i -%>/mac} <%= @host.mac -%> || goto net<%= i+1 %>
ifopen net<%= i %>
set idx:int32 <%= i %>
goto loop_success
<% end -%>

:loop_success
echo Configuring net${idx} for static IP address
ifopen net${idx}
set netX/ip <%= @host.ip %>
set netX/netmask <%= @host.subnet.mask %>
set netX/gateway <%= @host.subnet.gateway %>
route

# Note, iPXE can only use one DNS server
set dns <%= @host.subnet.dns_primary %>
set domain <%= @host.domain.to_s %>

# Chainload from Foreman rather than embedding OS info here, so the behaviour
# is entirely dynamic.
chain <%= (u = URI.parse(foreman_url("iPXE")); u.query ="#{u.query}&mac=#{@host.mac}"; u.to_s) %>
exit 0

:no_nic
echo Cannot find interface with MAC <%= @host.mac %>
sleep 30
exit 1

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
foreman_bootdisk-2.0.4 app/views/bootdisk/host.erb
foreman_bootdisk-2.0.3 app/views/bootdisk/host.erb
foreman_bootdisk-2.0.2 app/views/bootdisk/host.erb