Hello,
Trying to setup installation of ESXi 6.0 hosts using the included
vmware_esxi.task. I've setup all the razor components, task, policy, tags,
repo, etc. My repo is an offhost webserver(internal to network, no
firewalls involved). I am able to take the boot.cfg off the esxi
installation media and place it on my razor server and it will use that
boot.cfg.erb to install the host, after some tweaking. Tweaking involved
includes adding a "prefix=http://<httpserver>/repos/vmware-esxi-6.0.0" to
the boot.cfg.erb to look like this:
bootstate=0
title=Loading ESXi installer
prefix=http://<httpserver>/repos/vmware-esxi-6.0.0
kernel=tboot.b00
kernelopt=ks=#{file_url('ks.cfg')}
modules=b.b00 --- jumpstrt.gz --- useropts.gz --- k.b00 --- chardevs.b00 ---
a.b00 --- user.b00 --- uc_intel.b00 --- uc_amd.b00 --- sb.v00 --- s.v00 ---
net_enic.v00 --- scsi_fni.v00 --- scsi_sni.v00 --- ima_be2i.v00 --- scsi_be2
.v00 --- net_igb.v00 --- net_ixgb.v00 --- scsi_mpt.v00 --- net_qlcn.v00 ---
qlnative.v00 --- mtip32xx.v00 --- ata_pata.v00 --- ata_pata.v01 --- ata_pata
.v02 --- ata_pata.v03 --- ata_pata.v04 --- ata_pata.v05 --- ata_pata.v06 ---
ata_pata.v07 --- block_cc.v00 --- ehci_ehc.v00 --- elxnet.v00 --- emulex_e.v00
--- weaselin.t00 --- esx_dvfi.v00 --- esx_ui.v00 --- ima_qla4.v00 ---
ipmi_ipm.v00 --- ipmi_ipm.v01 --- ipmi_ipm.v02 --- lpfc.v00 --- lsi_mr3.v00
--- lsi_msgp.v00 --- lsu_hp_h.v00 --- lsu_lsi_.v00 --- lsu_lsi_.v01 ---
lsu_lsi_.v02 --- lsu_lsi_.v03 --- lsu_lsi_.v04 --- misc_cni.v00 --- misc_dri
.v00 --- net_bnx2.v00 --- net_bnx2.v01 --- net_cnic.v00 --- net_e100.v00 ---
net_e100.v01 --- net_forc.v00 --- net_mlx4.v00 --- net_mlx4.v01 --- net_nx_n
.v00 --- net_qlge.v00 --- net_tg3.v00 --- net_vmxn.v00 --- nmlx4_co.v00 ---
nmlx4_en.v00 --- nmlx4_rd.v00 --- nvme.v00 --- ohci_usb.v00 --- rste.v00 ---
sata_ahc.v00 --- sata_ata.v00 --- sata_sat.v00 --- sata_sat.v01 --- sata_sat
.v02 --- sata_sat.v03 --- sata_sat.v04 --- scsi_aac.v00 --- scsi_adp.v00 ---
scsi_aic.v00 --- scsi_bnx.v00 --- scsi_bnx.v01 --- scsi_hps.v00 --- scsi_ips
.v00 --- scsi_meg.v00 --- scsi_meg.v01 --- scsi_meg.v02 --- scsi_mpt.v01 ---
scsi_mpt.v02 --- scsi_mpt.v03 --- scsi_qla.v00 --- uhci_usb.v00 --- vsan.v00
--- vsanheal.v00 --- vsanmgmt.v00 --- xhci_xhc.v00 --- tools.t00 --- xorg.v00
--- imgdb.tgz --- imgpayld.tgz
build=
updated=0
This basically validates that all internal components are working for me.
The only part that fails is the kickstart line is not being read.
When I try to use the included boot,cfg,erb, such as the one found at
https://raw.githubusercontent.com/puppetlabs/razor-server/master/tasks/vmware_esxi.task/boot.cfg.erb,
the build process doesn't get far. It successfully downloads the mboot.c32
from the pxelinux_esxi.cfg.erb step but fails because it can not find the
tboot.b00 file on the remote repo.
The point of breakdown, I believe, is at the time when the boot.cfg.erb is
supposed to download the original boot.cfg from the repo and insert the
repo_url and file_url. This never happens(I've been watching the access
log on the webserver). I'm a little lost as to how to troubleshoot this
issue. Thoughts? I've submitted a puppet support ticket as well but I
thought I'd throw this out there.
<%=
# This code finds the `boot.cfg` file in the repository, parses it, and
# makes a set of modifications intended to make it net-boot from Razor.
#
# I chose this path because the boot.cfg file varies between releases of
# ESXi (such as 5.0 to 5.5), and could quite legitimately vary between
# smaller jumps than that -- after all, it is inside their boot loader,
# and they can change the construction of the installer CD without
# breaking anything...
#
# The alternative was to copy in the boot.cfg, modify it the way this
code
# will do on the fly, and then use that. That is actually the exact
# process documented for setting up ESXi PXE boot -- statically make
this
# change -- too.
#
# Given the changes are purely mechanical and well understood, this will
# do for the majority of cases without the risk / cost that a slight
# variant in the CD breaks everything, I think. --daniel 2013-10-14
(File.read(repo_file('/boot.cfg')) rescue '').split("\n").map do |line|
case line
when /^kernel=/
'kernel=' + repo_url(line.sub('kernel=', ''))
when /^modules=/
line.gsub('/', repo_url('/'))
when /^kernelopt=/
"kernelopt=ks=#{file_url('ks.cfg')}"
else
line
end
end.join("\n")
%>
--
You received this message because you are subscribed to the Google Groups
"puppet-razor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/puppet-razor.
For more options, visit https://groups.google.com/d/optout.