Adding a custom package in a custom iso?

Latest response

This is a bit of a unique issue that I have been having. I'm looking to include the Tenable SC "Security Center" rpm into the Packages directory in my custom RHEL7 image. I get how to create a custom iso kickstart, but anytime I try to create new meta data it seems to implode on me. When I cook off my kick start I usually get this:

anaconda 21.48.22.156-1 exception report
Traceback (most recent call first):
  File "/usr/lib64/python2.7/site-packages/pyanaconda/packaging/yumpayload.py", line 1270, in _selectYumGroup
    raise NoSuchGroup(groupid, required=required)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/packaging/yumpayload.py", line 1383, in _applyYumSelections
    self._selectYumGroup("core")
  File "/usr/lib64/python2.7/site-packages/pyanaconda/packaging/yumpayload.py", line 1441, in checkSoftwareSelection
    self._applyYumSelections()
  File "/usr/lib64/python2.7/site-packages/pyanaconda/packaging/yumpayload.py", line 1535, in preInstall
    self.checkSoftwareSelection()
  File "/usr/lib64/python2.7/site-packages/pyanaconda/install.py", line 251, in doInstall
    payload.preInstall(packages=packages, groups=payload.languageGroups())
  File "/usr/lib64/python2.7/threading.py", line 765, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/threads.py", line 227, in run
    threading.Thread.run(self, *args, **kwargs)
NoSuchGroup: core

Local variables in innermost frame:
default: True
self: <pyanaconda.packaging.yumpayload.YumPayload object at 0x7f7a9b404910>
required: False
pkg_types: ['mandatory', 'default']
optional: False
groupid: core

Bit of a generic error that probably has to do with my metadata. Maybe I need to look at creating my new metadata differently? I know I can install my Security Center rpm later, I just wanted to see if I could do it in my kickstart. Thoughts? Anyone else done some custom iso work before?

--Laszlo

Responses

Hello Laszlo Coleman

How did you cite the install in your kickstart? How did you make the rpm available?

Side note, incidentally, is this for RHEL 7, RHEL 8, or Server or Workstation?

I've done custom ISO work, and used some methods I found here from Frank Caviggia who is a former Red Hatter. Examine his method with his custom DVD for some ideas. Look under the directories config/hardened/hardened-centos.cfg. Please do not allow the fact that his method is for a hardened Linux load distract you from the method he uses to install custom RPMs. Yes, his is a hardened Linux load, I know yours is not. I just say this to highlight the fact his method for making custom RPMs is still valid and the point in bringing up his example is that method (you do not have to have hardened Linux to do this).

I've used a method similar to his when making my own custom install DVD

Regards,
RJ

I used How to create a customized Golden Image or Red Hat Enterprise Linux ISO with kickstart file to build my custom RHEL7 ISO. I copied the rpm over into the Packages directory, and then did a createrepo to build my new metadata to include my new Security Center rpm. Within the kickstart I called out the rpm by name in the packages section. From what I have seen on bugzilla I think it's mainly a metadata issue? Or the method I am using to include the new rpm?

I am familiar with Frank Caviggia's work with DISA STIG'd kickstarts they're very helpful; I didn't think to check back there, but now that you mention it's worth revisiting his Github. If you've been successful using a similar method I will definitely give it another shot today. Thanks for the recommendation! I will update this thread if I make some decent progress.

--Laszlo

Let us know if we can help you Laszlo

Regards,
RJ

I got it to work by creating a new separate repository within my ISO, and pointing to that in my kickstart rather than attempting to modify the AppStream. Re-creating the repodata seemed a bit too problematic, but with this route I can create new repo of extra bits of stuff I need. In this case Tennable SC on a STIG'd image. Thanks for pointing me in the right direction.

# ADDITIONAL PACKAGE SELECTION
repo --name="Extra" --baseurl=file:///run/install/repo/Extra/

Nice work Laszlo, I might borrow that too, thank you!

Regards,
RJ

Hello, Sorry to bother you. I need to do the same thing you did, adding some .rpms where did you copy the custom rpms and how did you create the repo?

Hi Pablo,

The answer takes a dive into some details. I'd recommend examining the method by Frank Caviggia a previous Red-Hatter.

NOTE: This example for rhel7.x I gave has to do with creating a custom build ISO for RHEL with some strict security hardening. Please do not allow the nature of that example to distract you from the method Frank Caviggia used to install custom RPMs. Frank Cavvigia in his example stages the custom RPMs he wants under the directory of the kickstart on the DVD under config/hardening/*rpm (these are files). It will take some dissection of the file "ssg-rhel.cfg" where on line 130, he shows the initial copy of the files. Then in lines 151 and further, he installs the RPMs he staged. Yes, that example is for RHEL 7.x, however, in principle, the kickstart topic is generic enough to take that example and use (again, in principle) the method for RHEL 8. I don't know which version of Linux you are attempting this against Pablo.

Regards, Hope this helps, else, come back.
RJ

hi,

I have a similar unique requirement on RH 8.2 as described below. I need to install selective packages of redhat both from Base and APPstream repos. not all. i also have my own application custom rpms also to be installed . we used to follow this approach on RH 7 (yes they dont have different repo like Base and APPstream) and was successful so far. we are migrating to RH8.2 and the method we are following for RH7 throws the error shared by laszlo. i am not a kick start expert. can any one help me with my requirement? is there a way i can attach my kickstart file here?