Right now, I am specifying repositories to be used for installation in the kickstart file via the repo directive. I am then, re-specifying those repositories to be added to the /etc/yum.repos.d post-installation.

Is there an elegant way to avoid the duplication of information? It has bitten me in the butt once already.


Perhaps I am understanding this incorrectly but: it seems that the repo directive is only used for specifying the repositories that are used by anaconda for installation. It does not actually install the repo on the server. I'm basing this presumption on my experience with kickstart installs.

This is why I install the repositories again post-install. I want to know if there is a better way so I do not have to specify the repositories in both the repo directive and in my post-install script.


In the post section of your kickstart include something like this:

cat >/etc/yum.repos.d/your.repo <<EOF
  • Added some clarification to the question. Let me know if that helps. – Belmin Fernandez Sep 25 '11 at 16:54
  • Definitely, see updated answer. – Andrew Case Sep 25 '11 at 18:36

The CentOS 7 anaconda "repo" command supports --install, which installs the repo information on the system being built: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html


Just like the definition of the installation repo this has to be done twice. We use a postinstall-script that gets called in the %post-section. That script in turn copies the appropriate repo-files to /etc/yum.repos.d/ - depending on the os.

That way we use almost the same kickstart file for CentOS 4 and CentOS 5.

  • 1
    If kickstart can / does call a nfs or accessible machine with desired repos adding nfs:/// |/mnt/repos/yourrepo.repo /mnt/sysimage/etc/yum.repos.d/ in %post (notice it's not %post --chroot ) to implant the repo into the resulting install. Also if you're creating an iso to later install from copy directly from the host builder in %post. – linuxdev2013 Aug 10 '16 at 6:36

I know this is an old thread, but as I found another (likely added in a later version of cobbler) solution, I thought I'd add it:

If you put $yum_config_stanza in your %post in your kickstart templates cobbler will create a .repo file of the assigned repos and place it in /etc/yum.repos.d/ for you. I also remove the default ones so that only my mirrors are used.

The relevant part of my kickstart template:

%post --log=/root/ks-post.log

#configure repos
rm /etc/yum.repos.d/*

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.