We import a number of packages from 3rd party repos (Oracle, EPEL, Nginx) in to our Satellite.
Here is a script I created which manages our 3rd-party-reposync
#!/bin/sh
##
## THIS SCRIPT RELIES ON THE RHNSAT HOST HAVING A YUM REPO DEFINED FOR THE
## VENDOR SUPPLIED REPO
##
## YOU WILL NEED TO ENABLE THE PUBLIC ORACLE REPO FOR
## el5_latest
## ol6_latest
## NOTE: You definitely need to include/exclude packages specific to oracleasm
NOTIFICATION=0
CONFIG=/etc/yum.conf.reposync
EMAIL=james.radtke@blah.com
LOGFILE=/tmp/3rd-party-reposync.out
LOCKFILE=/var/run/3rd-party-reposync.lock
DEBUG=0
DOM=`date +%d`
# THE VALUE AFTER THE % SIGN IS THE DIVISOR (i.e. %6 means 6/12/18/24/30)
MOD=$((DOM%7))
PWD=`pwd`
clear
echo "Output is sent to: $LOGFILE"
echo "To view output, run:"
echo "tail -f $LOGFILE"
if [ $NOTIFICATION == 1 ]
then
exec > $LOGFILE 2>&1
date
fi
# DETERMINE IF A PREVIOUS REPOSYNC IS STILL RUNNING
lockfile -r 0 ${LOCKFILE} 1>/dev/null 2>&1
status=$?
if [ ${status} -ne 0 ] ;then
echo "3rd-party-reposync is already running. Aborting second sync attempt."
exit 1
fi
trap "rm ${LOCKFILE}" EXIT
# * * * * * * * * * * * * * * * * * * *
# SUBROUTINES
# * * * * * * * * * * * * * * * * * * *
syncrepo() {
PKGDIR=/var/satellite/repos/$ARCH/$REPOID
echo
if [ ! -d $PKGDIR ]
then
mkdir -p $PKGDIR
fi
echo ""
echo "# * * * * * * * * * * * * * * * * * * * "
echo "# Begin ${REPOID}-${ARCH}"
echo "# * * * * * * * * * * * * * * * * * * * "
echo ""
echo "# NOTE: Syncing - ${REPOID}-${ARCH}"
echo "reposync -n -a $ARCH --repoid=${REPOID} -p /var/satellite/repos/$ARCH/ -n"
reposync -c ${CONFIG} -n -a $ARCH --repoid=${REPOID} -p /var/satellite/repos/$ARCH/ -n
# For some reason, the /etc/yum.repos.d/oracle file will not ignore the shitty xen packages
#find /var/satellite/repos/$ARCH/${REPOID} -name "*el5xen*" -exec rm {} \;
echo ""
echo "cd $PKGDIR"
cd $PKGDIR
echo ""
echo "createrepo $PKGDIR"
createrepo $PKGDIR
echo ""
echo "cd $PWD"
cd $PWD
echo ""
echo "spacewalk-repo-sync --channel $CHANNEL_LABEL --url file://$PKGDIR --type yum > /dev/null"
spacewalk-repo-sync --channel $CHANNEL_LABEL --url file://$PKGDIR --type yum > /dev/null
}
# * * * * * * * * * * * * * * * * * * *
# EXAMPLE
# * * * * * * * * * * * * * * * * * * *
#############
# NGINX RHEL5
#############
#CHANNEL_LABEL=nginx_rhel5 -- RETRIEVE FROM SATELLITE SERVER
#ARCH=x86_64 -- THIS SHOULD... BE OBVIOUS
#REPOID=nginx -- THIS IS THE NAME OF THE REPO WHICH YOU WILL RETRIEVE
# PACKAGES FROM /etc/yum.repos.d/blah.repo
#syncrepo
# * * * * * * * * * * * * * * * * * * *
# EPEL
# * * * * * * * * * * * * * * * * * * *
#############
# EPEL 6
#############
CHANNEL_LABEL=epel-x86_64-server-6
ARCH=x86_64
REPOID=epel-x86_64-server-6
syncrepo
#############
# EPEL 5
#############
CHANNEL_LABEL=epel-x86_64-server-5
ARCH=x86_64
REPOID=epel-x86_64-server-5
syncrepo
# * * * * * * * * * * * * * * * * * * *
# ORACLE
# * * * * * * * * * * * * * * * * * * *
#############
# EL5_LATEST
#############
CHANNEL_LABEL=ora_asm
ARCH=x86_64
REPOID=el5_latest
syncrepo
#############
# OL6_LATEST
#############
CHANNEL_LABEL=ol6_asm
ARCH=x86_64
REPOID=ol6_latest
syncrepo
# * * * * * * * * * * * * * * * * * * *
# NGINX
# * * * * * * * * * * * * * * * * * * *
#############
# NGINX RHEL5
#############
CHANNEL_LABEL=nginx_rhel5
ARCH=x86_64
REPOID=nginx
syncrepo
#############
# NGINX RHEL6
#############
CHANNEL_LABEL=nginx_rhel6
ARCH=x86_64
REPOID=nginx6
syncrepo
# * * * * * * * * * * * * * * * * * * *
# DELL
# * * * * * * * * * * * * * * * * * * *
#############
# DELL
#############
CHANNEL_LABEL=dell-om-platform_independent-rhel-x86_64-server-6
ARCH=x86_64
REPOID=srvadmin-base6
if [ $MOD == 0 ]
then
syncrepo
fi
CHANNEL_LABEL=dell-om-platform_independent-rhel-x86_64-server-5
ARCH=x86_64
REPOID=srvadmin-base
if [ $MOD == 0 ]
then
syncrepo
fi
# * * * * * * * * * * * * * * * * * * *
# SEND NOTIFICATION IF ENABLED
# * * * * * * * * * * * * * * * * * * *
if [ $NOTIFICATION == 1 ]
then
cat $LOGFILE | mail -s "3rd-party-reposync Report" $EMAIL
fi
exit 0
Here is a script I created which manages our 3rd-party-reposync
#!/bin/sh
##
## THIS SCRIPT RELIES ON THE RHNSAT HOST HAVING A YUM REPO DEFINED FOR THE
## VENDOR SUPPLIED REPO
##
## YOU WILL NEED TO ENABLE THE PUBLIC ORACLE REPO FOR
## el5_latest
## ol6_latest
## NOTE: You definitely need to include/exclude packages specific to oracleasm
NOTIFICATION=0
CONFIG=/etc/yum.conf.reposync
EMAIL=james.radtke@blah.com
LOGFILE=/tmp/3rd-party-reposync.out
LOCKFILE=/var/run/3rd-party-reposync.lock
DEBUG=0
DOM=`date +%d`
# THE VALUE AFTER THE % SIGN IS THE DIVISOR (i.e. %6 means 6/12/18/24/30)
MOD=$((DOM%7))
PWD=`pwd`
clear
echo "Output is sent to: $LOGFILE"
echo "To view output, run:"
echo "tail -f $LOGFILE"
if [ $NOTIFICATION == 1 ]
then
exec > $LOGFILE 2>&1
date
fi
# DETERMINE IF A PREVIOUS REPOSYNC IS STILL RUNNING
lockfile -r 0 ${LOCKFILE} 1>/dev/null 2>&1
status=$?
if [ ${status} -ne 0 ] ;then
echo "3rd-party-reposync is already running. Aborting second sync attempt."
exit 1
fi
trap "rm ${LOCKFILE}" EXIT
# * * * * * * * * * * * * * * * * * * *
# SUBROUTINES
# * * * * * * * * * * * * * * * * * * *
syncrepo() {
PKGDIR=/var/satellite/repos/$ARCH/$REPOID
echo
if [ ! -d $PKGDIR ]
then
mkdir -p $PKGDIR
fi
echo ""
echo "# * * * * * * * * * * * * * * * * * * * "
echo "# Begin ${REPOID}-${ARCH}"
echo "# * * * * * * * * * * * * * * * * * * * "
echo ""
echo "# NOTE: Syncing - ${REPOID}-${ARCH}"
echo "reposync -n -a $ARCH --repoid=${REPOID} -p /var/satellite/repos/$ARCH/ -n"
reposync -c ${CONFIG} -n -a $ARCH --repoid=${REPOID} -p /var/satellite/repos/$ARCH/ -n
# For some reason, the /etc/yum.repos.d/oracle file will not ignore the shitty xen packages
#find /var/satellite/repos/$ARCH/${REPOID} -name "*el5xen*" -exec rm {} \;
echo ""
echo "cd $PKGDIR"
cd $PKGDIR
echo ""
echo "createrepo $PKGDIR"
createrepo $PKGDIR
echo ""
echo "cd $PWD"
cd $PWD
echo ""
echo "spacewalk-repo-sync --channel $CHANNEL_LABEL --url file://$PKGDIR --type yum > /dev/null"
spacewalk-repo-sync --channel $CHANNEL_LABEL --url file://$PKGDIR --type yum > /dev/null
}
# * * * * * * * * * * * * * * * * * * *
# EXAMPLE
# * * * * * * * * * * * * * * * * * * *
#############
# NGINX RHEL5
#############
#CHANNEL_LABEL=nginx_rhel5 -- RETRIEVE FROM SATELLITE SERVER
#ARCH=x86_64 -- THIS SHOULD... BE OBVIOUS
#REPOID=nginx -- THIS IS THE NAME OF THE REPO WHICH YOU WILL RETRIEVE
# PACKAGES FROM /etc/yum.repos.d/blah.repo
#syncrepo
# * * * * * * * * * * * * * * * * * * *
# EPEL
# * * * * * * * * * * * * * * * * * * *
#############
# EPEL 6
#############
CHANNEL_LABEL=epel-x86_64-server-6
ARCH=x86_64
REPOID=epel-x86_64-server-6
syncrepo
#############
# EPEL 5
#############
CHANNEL_LABEL=epel-x86_64-server-5
ARCH=x86_64
REPOID=epel-x86_64-server-5
syncrepo
# * * * * * * * * * * * * * * * * * * *
# ORACLE
# * * * * * * * * * * * * * * * * * * *
#############
# EL5_LATEST
#############
CHANNEL_LABEL=ora_asm
ARCH=x86_64
REPOID=el5_latest
syncrepo
#############
# OL6_LATEST
#############
CHANNEL_LABEL=ol6_asm
ARCH=x86_64
REPOID=ol6_latest
syncrepo
# * * * * * * * * * * * * * * * * * * *
# NGINX
# * * * * * * * * * * * * * * * * * * *
#############
# NGINX RHEL5
#############
CHANNEL_LABEL=nginx_rhel5
ARCH=x86_64
REPOID=nginx
syncrepo
#############
# NGINX RHEL6
#############
CHANNEL_LABEL=nginx_rhel6
ARCH=x86_64
REPOID=nginx6
syncrepo
# * * * * * * * * * * * * * * * * * * *
# DELL
# * * * * * * * * * * * * * * * * * * *
#############
# DELL
#############
CHANNEL_LABEL=dell-om-platform_independent-rhel-x86_64-server-6
ARCH=x86_64
REPOID=srvadmin-base6
if [ $MOD == 0 ]
then
syncrepo
fi
CHANNEL_LABEL=dell-om-platform_independent-rhel-x86_64-server-5
ARCH=x86_64
REPOID=srvadmin-base
if [ $MOD == 0 ]
then
syncrepo
fi
# * * * * * * * * * * * * * * * * * * *
# SEND NOTIFICATION IF ENABLED
# * * * * * * * * * * * * * * * * * * *
if [ $NOTIFICATION == 1 ]
then
cat $LOGFILE | mail -s "3rd-party-reposync Report" $EMAIL
fi
exit 0
Comments
Post a Comment