Chandan Kumar (raukadah) 8591ce2b5c Enable mirroring of centos stream 9 contents
It picks the rackspace mirror from this list
https://admin.fedoraproject.org/mirrormanager/mirrors/CentOS/9-stream/x86_64
which is present in US.

It moves base directory to centos-stream to be consistent to centos
mirrors.

We will only synchronize x86_64 and aarch64 arches as those are the only
ones used in opendev CI. We also exculde source and debug directories to
optimize space usage as those are only required for debugging purposes.

Change-Id: I195ebee548071b0b89bd5bf64b251595271178ca
2021-11-12 09:41:26 +01:00

155 lines
3.8 KiB
Bash
Executable File

#!/bin/bash -xe
# Copyright 2016 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
source /usr/share/mirror-update/functions.sh
MIRROR_VOLUME=$1
if [[ ${NO_TIMEOUT:-0} -eq 1 ]]; then
echo "Running interactively"
TIMEOUT=""
else
TIMEOUT="timeout -k 2m 30m"
fi
_DRY_RUN=''
if [[ ${DRY_RUN:-0} -eq 1 ]]; then
echo "Dry run only"
_DRY_RUN='--dry-run'
fi
RSYNC="rsync ${_DRY_RUN} -rltvz"
BASE="/afs/.openstack.org/mirror/centos"
K5START="k5start -t -f /etc/centos.keytab service/centos-mirror -- $TIMEOUT"
#
# -- Centos 9-stream --
#
# Since CentOS Stream 9, CentOS mirrofs have moved OS repos from basedir centos to centos-stream
BASE_STREAM="/afs/.openstack.org/mirror/centos-stream"
MIRROR=rsync://dfw.mirror.rackspace.com/centos-stream/9-stream/ # somewhere in US
if ! [ -f ${BASE_STREAM}/9-stream ]; then
$K5START mkdir -p ${BASE_STREAM}/9-stream
fi
date --iso-8601=ns
echo "Running Centos 9-stream rsync..."
$K5START ${RSYNC} \
--delete \
--delete-excluded \
--exclude="iso" \
--exclude="debug" \
--exclude="s390x" \
--exclude="source" \
--exclude="ppc64le" \
$MIRROR ${BASE_STREAM}/9-stream
#
# -- Centos 8-stream --
#
MIRROR=rsync://mirror.dal10.us.leaseweb.net/centos/8-stream/ # somewhere in TX
if ! [ -f $BASE/8-stream ]; then
$K5START mkdir -p $BASE/8-stream
fi
date --iso-8601=ns
echo "Running Centos 8-stream rsync..."
$K5START ${RSYNC} \
--delete \
--delete-excluded \
--exclude="isos" \
--exclude="ppc64le*" \
--exclude=".*" \
$MIRROR $BASE/8-stream
#
# -- Centos 8 --
#
MIRROR=rsync://mirror.dal10.us.leaseweb.net/centos/8/ # somewhere in TX
if ! [ -f $BASE/8 ]; then
$K5START mkdir -p $BASE/8
fi
date --iso-8601=ns
echo "Running Centos 8 rsync..."
$K5START ${RSYNC} \
--delete \
--delete-excluded \
--exclude="isos" \
--exclude="ppc64le*" \
--exclude=".*" \
$MIRROR $BASE/8
#
# -- Centos 7 --
#
MIRROR="rsync://mirrors.kernel.org/centos"
MIRROR_ALTARCH="rsync://mirror.dal.nexril.net/centos-altarch/"
REPOS="7 altarch/7"
ALTARCHS="aarch64"
ALTARCHS_IGNORED="armhfp i386 power9 ppc64 ppc64le x86_64" # altarch/kernel/ has x86_64 dir we do not want
for REPO in $REPOS; do
if ! [ -f $BASE/$REPO ]; then
$K5START mkdir -p $BASE/$REPO
fi
MIRROR_PATH=$MIRROR/$REPO/
EXTRA_OPTS="--links" # -l
if [[ $REPO == "altarch"* ]]; then
MIRROR_PATH=$MIRROR_ALTARCH/7/
EXTRA_OPTS="--copy-links" # copy because altarch has symlinks to ../7.6.1810/
for arch in $ALTARCHS_IGNORED; do
EXTRA_OPTS="$EXTRA_OPTS --exclude=$arch"
done
for arch in $ALTARCHS; do
EXTRA_OPTS="$EXTRA_OPTS --include *.${arch}.rpm"
done
fi
date --iso-8601=ns
echo "Running rsync..."
$K5START ${RSYNC} \
--delete \
--delete-excluded \
--exclude="atomic" \
--exclude="centosplus" \
--exclude="experimental" \
--exclude="fasttrack" \
--exclude="isos" \
--exclude="paas" \
--exclude="*/drpms" \
$EXTRA_OPTS \
$MIRROR_PATH $BASE/$REPO/
# TODO(pabelanger): Validate rsync process
done
if [[ ${DRY_RUN:-0} -ne 1 ]]; then
date --iso-8601=ns | $K5START tee $BASE/timestamp.txt
echo "rsync completed successfully, running vos release."
vos_release $MIRROR_VOLUME
fi
date --iso-8601=ns
echo "Done."