55 lines
1.9 KiB
Bash
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
|