[CentOS] Created a custom/minimal CentOS 5.x install ISO

Thu May 20 01:40:13 UTC 2010
Gordon Messmer <yinyang at eburg.com>

On 05/19/2010 02:37 PM, Digimer wrote:
>
>     I've been googling for ways to do this, figuring it must be somewhat
> straight forward, but my google-fu is weak it seems. Can someone point
> me to a how-to or doc on rolling your own CentOS derivative ISO?

You can look around for documents on revisor.  I use the attached 
configuration files to generate installable trees.

revisor.conf belongs in /etc/revisor/.  revisor-c5-x86_64.conf belongs 
in /etc/revisor/conf.d/.

In the c5 file, you'll want to disable the "local" repository initially. 
  I use that section to avoid downloading packages that I already have 
when I want to refresh my tree.

I think you'll also need to remove the "reuse" line from revisor.conf 
initially.  I use the "revisor-reuseinstaller" to avoid rebuilding the 
installation images.  IIRC, the squash tools differ between Fedora 
(where I do these builds) and CentOS 5; it isn't possible to rebuild the 
anaconda images on Fedora.  If you run revisor on CentOS 5, the 
reuseinstaller package is optional.

Once you have revisor installed and the config files in place, you need 
a kickstart file that specifies what packages you want installed. 
Provide that to revisor and it will build the image using the packages 
specified in the kickstart file.

# revisor --yes --kickstart=/home/gordon/deploy/kickstart/centos5 
--model=c5-x86_64 --install-tree --cli
-------------- next part --------------
# Revisor base config file
# This file will be updated, so make sure to watch .rpmnew stuff

[revisor]
# Some revisor options to eliminate the need for CLI parameters,
# or save clicks in the GUI

# Types of Installation Media to build
media_installation_dvd=0
media_installation_cd=0
# Types of Live Media to build
media_live_optical=0
media_live_thumb=0

repos_enabledevelopment=0
repos_enabletesting=0
repos_enablesource=0
repos_enabledebuginfo=0

# These are more advanced options
dependency_resolve_allow_conflicts=0
mode_respin=0

##
## Models
##

[f13-i386]
description = Fedora 13 for i386
main = /etc/revisor/conf.d/revisor-f13-i386.conf
product_name = Fedora
product_path = Packages
iso_basename = Fedora
architecture = i386
version = rawhide
version_from = DEVEL
getsource = 0
reuse=/var/www/html/mirrors/fedora-13-i386/

[f13-x86_64]
description = Fedora 13 for x86_64
main = /etc/revisor/conf.d/revisor-f13-x86_64.conf
product_name = Fedora
product_path = Packages
architecture = x86_64
version = rawhide
version_from = DEVEL
getsource = 0
reuse=/var/www/html/mirrors/fedora-13-x86_64/

[f12-i386]
description = Fedora 12 for i386

# Point here to the yum configuration file
# Remember to use a yum configuration file with expanded
# $basearch and $releasever variables
main = /etc/revisor/conf.d/revisor-f12-i386.conf

# Installation Media specific settings
# Set the product name
product_name = Fedora

# Set the product path
product_path = Packages

# The base name for the ISO
iso_basename = Fedora

# The architecture to use for this model
architecture = i386

# The version number
version = 12

# The version number to use for kickstart compatibility and required package selection
# May differ from the product's version number.
version_from = F12

# Whether to include the creation of source media
# 0 = No
# 1 = Yes
getsource = 0
reuse=/var/www/html/mirrors/fedora-12-i386/

[f12-x86_64]
description = Fedora 12 for x86_64
main = /etc/revisor/conf.d/revisor-f12-x86_64.conf
product_name = Fedora
product_path = Packages
architecture = x86_64
version = 12
version_from = F12
getsource = 0
reuse=/var/www/html/mirrors/fedora-12-x86_64/

[f12-ppc]
description = Fedora 12 for PPC
main = /etc/revisor/conf.d/revisor-f12-ppc.conf
product_name = Fedora
product_path = Packages
architecture = ppc
version = 12
version_from = F12
getsource = 0

[f12-ppc64]
description = Fedora 12 for PPC64
main = /etc/revisor/conf.d/revisor-f12-ppc64.conf
product_name = Fedora
product_path = Packages
architecture = ppc64
version = 12
version_from = F12
getsource = 0

[rawhide-i386]
description = Rawhide for i386
main = /etc/revisor/conf.d/revisor-rawhide-i386.conf
product_name = Fedora
product_path = Packages
architecture = i386
version = rawhide
version_from = DEVEL
getsource = 0
repos_enabledevelopment=1
repos_enabletesting=0
repos_enablesource=0
repos_enabledebuginfo=0

[rawhide-x86_64]
description = Rawhide for x86_64
main = /etc/revisor/conf.d/revisor-rawhide-x86_64.conf
product_name = Fedora
product_path = Packages
architecture = x86_64
version = rawhide
version_from = DEVEL
getsource = 0
repos_enabledevelopment=1
repos_enabletesting=0
repos_enablesource=0
repos_enabledebuginfo=0

[rawhide-ppc]
description = Rawhide for PPC
main = /etc/revisor/conf.d/revisor-rawhide-ppc.conf
product_name = Fedora
product_path = Packages
architecture = ppc
version = rawhide
version_from = DEVEL
getsource = 0
repos_enabledevelopment=1
repos_enabletesting=0
repos_enablesource=0
repos_enabledebuginfo=0

[c5-i386]
description = CentOS 5 for i386
main = /etc/revisor/conf.d/revisor-c5-i386.conf
product_name = CentOS
product_path = CentOS
iso_basename = CentOS
iso_label = CentOS
architecture = i386
version = 5
version_from = RHEL5
getsource = 0
release_pkgs = ^centos-release.*
release_files = eula.txt fedora.css GPL README-BURNING-ISOS-en_US.txt RELEASE-NOTES-en_US.html ^RPM-GPG img images stylesheet-images
reuse=/var/www/html/mirrors/centos-5-i386/

[c5-x86_64]
description = CentOS 5 for x86_64
main = /etc/revisor/conf.d/revisor-c5-x86_64.conf
product_name = CentOS
product_path = CentOS
iso_basename = CentOS
iso_label = CentOS
architecture = x86_64
version = 5
version_from = RHEL5
getsource = 0
release_pkgs = ^centos-release.*
release_files = eula.txt fedora.css GPL README-BURNING-ISOS-en_US.txt RELEASE-NOTES-en_US.html ^RPM-GPG img images stylesheet-images
reuse=/var/www/html/mirrors/centos-5-x86_64/
-------------- next part --------------
[main]
cachedir=-yumcache
reposdir=
keepcache=1
debuglevel=1
logfile=-yum.log
pkgpolicy=newest
distroverpkg=centos-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
installroot=/var/tmp/revisor
failovermethod=priority

[local-centos-5-x86_64]
name=Local Mirror of CentOS 5 - Base
baseurl=http://config/mirrors/centos-5-x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
cost=500

[centos-5-x86_64]
name=CentOS 5 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

[centos-5-x86_64-updates]
name=CentOS 5 - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=updates
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

[fedora-epel-5-x86_64]
name=Extra Packages for Enterprise Linux
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=x86_64
enabled=1
gpgcheck=0
gpgkey=