yum repository 만들기 및 설정

#!/bin/bash
############################################################
#
# CentOS/Rocky Linux
# yum repository 사이트 동기화 스크립트
#
############################################################
LOCAL_BASE_DIR="/mnt/usbdisk/repo"

############################################################
# 불필요한 파일 제한
############################################################
#EXCLUDE_LIST="\
#--exclude HEADER.images/ \
#--exclude Source/ \
#--exclude atomic/ \
#--exclude centosplus/ \
#--exclude cloud/ \
#--exclude configmanagement/ \
#--exclude contrib/ \
#--exclude cr/ \
#--exclude debug/ \
#--exclude dotnet/ \
#--exclude extras/ \
#--exclude fasttrack/ \
#--exclude i386/ \
#--exclude infra/ \
#--exclude isos/ \
#--exclude messaging/ \
#--exclude nfv/ \
#--exclude opstools/ \
#--exclude paas/ \
#--exclude rt/ \
#--exclude sclo/ \
#--exclude storage/ \
#--exclude virt"

EXCLUDE_LIST="\
--exclude Source/ \
--exclude debug/ \
--exclude dotnet/ \
--exclude extras/ \
--exclude fasttrack/ \
--exclude i386/ \
--exclude isos/ \
--exclude opstools/ \
--exclude storage/ \
--exclude virt/"

if [ ! -d ${LOCAL_BASE_DIR} ]
then
  echo "${LOCAL_BASE_DIR} not found !"
  exit
fi

# CentOS 6.10
#MIRROR_SITE="https://vault.centos.org"
#REMOTE_DIR="/6.10"
#LOCAL_DIR="${LOCAL_BASE_DIR}/centos/6.10"
#mkdir -p ${LOCAL_DIR} > /dev/null
#if ! pgrep -x "lftp" > /dev/null
#then
#  lftp  -e "cache off; set file:charset utf-8; set net:timeout 60; set net:reconnect-interval-base 5; set net:max-retries 10; mirror ${EXCLUDE_LIST} -e -v ${REMOTE_DIR} ${LOCAL_DIR}; exit" ${MIRROR_SITE}
#fi

# CentOS 7.5.1804
#MIRROR_SITE="https://vault.centos.org"
#REMOTE_DIR="/7.5.1804"
#LOCAL_DIR="${LOCAL_BASE_DIR}/centos/7.5.1804"
#mkdir -p ${LOCAL_DIR} > /dev/null
#if ! pgrep -x "lftp" > /dev/null
#then
#  lftp  -e "cache off; set file:charset utf-8; set net:timeout 60; set net:reconnect-interval-base 5; set net:max-retries 10; mirror ${EXCLUDE_LIST} -e -v ${REMOTE_DIR} ${LOCAL_DIR}; exit" ${MIRROR_SITE}
#fi

# CentOS 7.9.2009
#MIRROR_SITE="http://mirror.kakao.com"
#REMOTE_DIR="/centos/7.9.2009"
#LOCAL_DIR="${LOCAL_BASE_DIR}/centos/7.9.2009"
#mkdir -p ${LOCAL_DIR} > /dev/null
#if ! pgrep -x "lftp" > /dev/null
#then
#  lftp  -e "cache off; set file:charset utf-8; set net:timeout 60; set net:reconnect-interval-base 5; set net:max-retries 10; mirror ${EXCLUDE_LIST} -e -v ${REMOTE_DIR} ${LOCAL_DIR}; exit" ${MIRROR_SITE}
#fi

# Rocky Linux 8.8
MIRROR_SITE="http://mirror.navercorp.com"
REMOTE_DIR="/rocky/8.8"
LOCAL_DIR="${LOCAL_BASE_DIR}/rocky/8.8"
mkdir -p ${LOCAL_DIR} > /dev/null
if ! pgrep -x "lftp" > /dev/null
then
  lftp  -e "cache off; set file:charset utf-8; set net:timeout 60; set net:reconnect-interval-base 5; set net:max-retries 10; mirror ${EXCLUDE_LIST} -e -v ${REMOTE_DIR} ${LOCAL_DIR}; exit" ${MIRROR_SITE}
fi

#!/bin/bash
############################################################
#
# CentOS yum repository 셋팅 스크립트
#
############################################################
CURRENT_TIME=`date "+%Y%m%d_%H%M%S"`

# 로컬 repository 서버의 IP주소
REMOTE_REPO_ADDR="10.10.10.111"
REMOTE_PATH="https://${REMOTE_REPO_ADDR}/centos/7.9.2009"

# 기존 yum repository 정보를 모두 백업 한다.
cp -Rfv /etc/yum.repos.d /etc/yum.repos.d.${CURRENT_TIME}

# 기존 yum repository 정보를 모두 삭제 한다.
rm -rf /etc/yum.repos.d/*

# 새로운 yum repository 정보를 작성한다.
echo "[base]" > /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "name=localrepo - base" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "baseurl=${REMOTE_PATH}/os/\$basearch/" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "enabled=1" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "sslverify=0" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "[updates]" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "name=localrepo - updates" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "baseurl=${REMOTE_PATH}/updates/\$basearch/" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "enabled=1" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo
echo "sslverify=0" >> /etc/yum.repos.d/${REMOTE_REPO_ADDR}.repo

# 정상적으로 작동하는지 테스트 한다.
clear
yum repolist
위로 스크롤