[ipxe-devel] Thoughts about an enterprise use for iPXE
Joe Landman
landman at scalableinformatics.com
Sat Mar 15 21:47:28 UTC 2014
I hadn't seen the original message, but I saw the reply and I realized I
should not have missed it ... more below.
On 02/21/2014 02:29 PM, Andrew "Arthur" Summers wrote:
> Team,
>
>
> I have an idea and potential enterprise use case for iPXE that I wanted
> to share with you. I debated sending this via my corporate email so it
> would stand out a little more in your inbox, but I thought that should
> this idea be viable enough to become something bigger, it would
> potentially be considered intellectual property of my company from a
> legal standpoint. However, let’s just say that I work for a VERY big
> company (I’ll narrow it down a little and say it’s in the Fortune Top 5).
[...]
> Enter iPXE. My thought is that this little gem could be used as a
> “software iLO” of sorts to give control over a system’s boot process by
> using some simple dynamic scripts and backend configuration data.
> Instead of preseeding a full image for a system and needing to remove it
> after the system is installed, a system could be configured with the
> tiny iPXE ISO permanently attached. The only preseeding needed would be
> static IP information. Let me walk you through a potential boot process:
[...]
This is, almost exactly, how our Tiburon system works, and it uses iPXE
to handle the boot. We programmatically set the boot media (next gen is
RESTful DB, current gen in use at numerous sites, including some cloud
folks is a json DB).
Well, we don't use PHP for it, but the basic idea is exactly the same.
Note: we've been doing this, using iPXE (and gPXE before this) for a
number of years.
> There are obviously a few components that need to be built to allow all
> of this to work:
>
> * Some sort of management console (web based?) for entering/updating
> client information
How about this:
"pxeboot" : {
"systemrescuecd" : {
"boot_args" : "keeppxe dodhcp nameif=eth0!BOOTIF verbose
netboot=http://__bootserver__/images/sysres/sysrcd.dat ",
"kernel" : "http://__bootserver__/images/sysres/rescue64",
"initrd" : "http://__bootserver__/images/sysres/initram.igz"
},
"SmartOS_ISO" : {
"boot_args" : "",
"sanboot" :
"http://__bootserver__/images/SmartOS/smartos-20120809T221258Z.iso"
},
"biosupdate-x8dah": {
"kernel" : "memdisk",
"boot_args" : "keeppxe initrd=biosupdate/16MB-bios-update-x8dah.img",
"initrd" : "biosupdate/16MB-bios-update-x8dah.img"
}
}
Next gen system (in testing now) uses a nice document DB for this, along
with an data store for storing the images/kernels/initrd/isos/...
> o Would be great if AD integration were possible with role
> separation (role for changing configs, role for marking systems
> for reimaging, audit role, etc)
:)
> * Database to store client information (perhaps paired with something
> like OpenStack/SaltStack?)
See above. This system is in use in an existing cloud system, at
multiple customer sites.
> o Flexible options for backend integration (SQL Server, MySQL, etc)
Meh ... SQL makes little sense here, this is a noSQL domain.
> * PHP backend to serve dynamic configuration info to iPXE requests
Not a PHP fan, but our RESTful API talks http[s] so whatever you want to
write clients in ...
> * Tool to generate iPXE ISOs with preseeded static IP information
> o Looked at ROM-o-Matic
> o Would ideally allow the creation of multiple ISOs based on a CSV
> or a feed from the DB
> o Web-based? Would need to be platform-agnostic
> * iPXE currently doesn’t recognize Hyper-V vNICs unless a legacy
> adapter is used
You don't need to generate ISOs. Its better if you don't.
>
> I’ll admit that I’m no developer, but I’m no stranger to code, either.
> Let me know what your thoughts are, and if there’s any way I can assist,
> I’d be more than willing to do so.
Ping me offline if you are interested.
--
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics, Inc.
email: landman at scalableinformatics.com
web : http://scalableinformatics.com
twtr : @scalableinfo
phone: +1 734 786 8423 x121
cell : +1 734 612 4615
More information about the ipxe-devel
mailing list