Summary
This documents how to build your own ISO, complete with custom kickstart (system default configuration), set of RPM and splash screens.
Step 1.
...
Code Block |
---|
git clone git://github.com/dhubler/sipXiso.git
|
...
Download base CentOS base ISOs
Download the first CD ISO image from the CentOS operating system for 32 and/or 64 bit. Mirror lists are here http://isoredirect.centos.org/centos/5/isos/i386/
http://isoredirect.centos.org/centos/5/isos/x86_64/
Put the ISOs into a single directory and do not rename them, In this example we'll use ~/downloads/centos
Step
...
2. Download or build sipXecs RPMS
Obtain a copy of all the RPMs needed to install sipXecs including the rpms built from the ./lib directory such as ruby-postgres, sipx-freeswitch, etc. into a directory. It can be organized anyway you want, in fact it can be a directory that also acts as a yum repository. For this example, we'll put these into ~/build/sipxecs
Step
...
3. Configure
Run the standard script to setup the configuration script
Code Block |
---|
autoreconf -if
|
Then run configure pointing to your CentOS ISO and sipXecs rpms. In our example this will be.
Code Block |
---|
./configure --enable-centos-iso ISO_DIR=~/home/downloadsbuildbot/centosDownloads REPORPM_DIST_DIR=~/home/build/sipxecs |
Step 5. Build
...
buildbot/sipx-master-4.2
|
Step 4. Build
If you're building RPMS, go ahead and run your target. For example make distro.centos-5-x86_64.rpm distro.centos-5-i386.rpm
.
Step 5. Build ISO
Note | ||
---|---|---|
| ||
Unfortunately the make process needs to mount the ISO and unless you configure mount only root can do that |
...
. |
Code Block |
---|
sudo make alliso |
if you want to just build the 32 bit or the 64 bit ISO, you can run "make
alliso-32
" or "make
alliso-64
" respectively.
Step 6. Contribute
If you have can changes you'd like to submit back, please post on sipx-dev mailing list and/or initiate git pull requests.
Additional Information
Customizing
Reasons to customize the ISO-
- ISO makes a lot of assumptions about your system. US locale for example, size of the disk for auto-formatting is greater than 13GB, the default size of the partitons, etc. To change these, you must customize the ISO
...
- If you want to brand the ISO with your company logos, colors or welcome messages
...
- If you want to include extra RPMs by default
If you don't you'll produce the standard SIPfoundry ISO and may be all that you desire. If you do decide to customize, then create a separate directory to hold your custom files and configure your build to use this directory. For example ./configure ... OEM_DIR=~/work/ezuce
Contents of ~/work/ezuce
iso.mak.in - override various make variables used to create the ISO. See Makefile.in for a list of all the variables you could override. Here is an example
No Formatcode |
---|
SPLASH_FILE = <at:var at:name="OEM_DIR" />@OEM_DIR@/splash.lss ISO_LABEL ?= ezuce VOLUME_LABEL ?= "ezuce <at:var at:name="PACKAGE_VERSION" />" @PACKAGE_VERSION@" APPLICATION_LABEL ?= "ezuce <at:var at:name="PACKAGE_VERSION" />" @PACKAGE_VERSION@" PUBLISHER_ID ?= dhubler@ezuce.com PREPARERER_ID ?= dhubler@ezuce.com |
oem.m4 - Contains M4 macros that you can use to extend the kickstart file. Look in ks.m4 for an idea of the hooks that are currently in place you can alter. Here is an example
No Formatcode |
---|
define(`sipx_packages',
sipx_packages()
ezuce
)
define(`welcome_message',
Welcome to eZuce
=============================
First time logon: user = root password = setup
)
define(`repo_contents',
[ezuce]
name=ezuce CentOS \$releasever - \$basearch
baseurl=http://download.example.com/ezuce/PACKAGE_VERSION()/CentOS_\$releasever/
enabled=1
gpgcheck=0
)
|
...