ansible/roles/batcave/files/rhel7-sync

55 lines
1.9 KiB
Bash

#!/bin/sh
RHEL7SYNCDIR=/srv/web/repo/rhel/rhel7
SYNCDIR=/var/cache/reposync/
YUMDIR=/var/tmp/reposync-rhel7/
## Need to download the metadata and the modular data
DNFOPTS='--download-metadata --remote-time --delete'
ARCHES="ppc64le s390x x86_64"
#ARCHES="x86_64"
mkdir -vp ${SYNCDIR} ${RHEL7SYNCDIR} ${YUMDIR}
for A in ${ARCHES}; do
mkdir -vp ${YUMDIR}/${A}
done
cd $RHEL7SYNCDIR
##
## Sync out RHEL-7 for appropriate arches
for A in ${ARCHES}; do
if [[ ${A} == 'x86_64' ]]; then
DNF_ARCH="-p ${A} -a ${A} -a noarch -a i686"
else
DNF_ARCH="-p ${A} -a ${A} -a noarch"
fi
rm -rf ${SYNCDIR}/${A}
CONF=yum-batcave-rhel7-${A}.conf
REPOS="rhel-7-for-${A}-server-rpms rhel-7-ha-for-${A}-server-rpms rhel-7-extras-for-${A}-server-rpms rhel-7-optional-for-${A}-server-rpms rhel-7-devtools-for-${A}-server-rpms rhel-7-rhscl-for-${A}-server-rpms"
for R in ${REPOS}; do
rm -rf ${YUMDIR}/${R}
# Test to see if we have this repository in our tree
grep -q ${R} ${RHEL7SYNCDIR}/${CONF}
if [[ $? -eq 0 ]]; then
echo "Syncing ${R} for ${A}"
dnf reposync -c ${RHEL7SYNCDIR}/${CONF} ${DNFOPTS} --repoid ${R} ${DNF_ARCH} --metadata-path ${YUMDIR}/${A}
if [[ $? -ne 0 ]]; then
echo "Something went wrong with reposync -c ${RHEL7SYNCDIR}/${CONF} ${DNFOPTS} --repoid ${R} ${DNF_ARCH} --metadata-path ${YUMDIR}/${A}"
continue
fi
## Try to create repo
pushd ${RHEL7SYNCDIR}/${A}/${R} &> /dev/null
createrepo_c -q --update --workers 6 .
if [[ $? -ne 0 ]]; then
echo "Something went wrong with createrepo ${A} ${R}"
continue
fi
popd &> /dev/null
fi
done
done
#ostree pull --repo=/mnt/fedora/app/fi-repo/rhel/rhel7/atomic/rhel7 --mirror redhat
## This section is for all the trees which are not easily scriptable