CentOS7 Kickstart (or Network) Install Without PXE

Well, that was a rather entertaining hour plus wasted. Doesn’t everyone love it when your vendor changes things that you have done for YEARS, and are quite accustomed to, all for “organization” or “improvement” ?

I just argued with CentOS7 attempting to get it to do a pxe-less kickstart install via network installation source. Was quite an amusing adventure. The documentation is horrible about how this has changed, so hopefully, this post will help others out.

The easiest method, using either the network install or the minimal install iso, is to press “Esc” when you get to the bootloader.

This will take you to the boot prompt:


Once you are here, you can start appending some of your options, so let’s go over them right quick:

The first one you will always need:

boot: linux

Yep, you guess it, you have to specify linux so that the loader knows what to run to begin with.

From there, we can start taking some more advanced options. In my own case, I wanted to load a remote served kickstart file, and configure the network details:


Ok, so the above looks rather simple, right? Well, it is, but there is one very serious gotcha... The ip= is actually extremely specific about the method segment, which allows for: dhcp, on, any, none, or off. So what, right? When dealing with static addresses, you must specify none of off. If you fail to do this, it will try to use dhcp, and you will have to reboot and do it again!

A working example, though not verbatim:

boot: linux inst.ks=http://my.internal.repo/my/ks.cfg ip= nameserver=

In the above example, there is at least one thing to note — I have specified a hostname, but I did not specify an interface. On my own host, I only have one interface, so this becomes unnecessary for my own use case. Another “gotcha” that is rather amusing — Yes, there really are 2 “:” between ip address and gateway, and yes, gateway does occur before prefix. Network wise, it should go in the reverse order, but whatever.

I mentioned in the title that this would also help you with network installation without kickstart. The change isn’t that drastic:

boot: linux inst.repo=http://my.internal.repo/my/installdir ip= nameserver=

As you can see, we aren’t changing much, we can still specify a number of methods, we can also specify an iso instead of a directory; kinda nifty. In the case above, I am using the directory method over http, which allows me to install from a network location, but I can still configure my packages and options manually.

If anyone needs any further examples, feel free to leave a comment and I will see if I can get you something to work with.



Comments powered by Disqus