制作离线 yum 源

作者: oldboy 分类: Yum 发布时间: 2023-04-23 16:54

1、初始化服务器

PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>/etc/profile
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/bashrc
echo -e "ClientAliveInterval 30 \nClientAliveCountMax 86400" >>/etc/ssh/sshd_config
#sed -i '/#Port 22/a Port 52113' /etc/ssh/sshd_config
sed -i '/UseDNS/a UseDNS no' /etc/ssh/sshd_config
systemctl restart  sshd
ntpdate 61.160.213.184
clock -w
echo "0 */1 * * * /usr/sbin/ntpdate 61.160.213.184 &> /dev/null" >> /var/spool/cron/root
#rdate -s time.nist.gov
#echo "0 */1 * * * /usr/bin/rdate -s time.nist.gov &> /dev/null" >> /var/spool/cron/root
mkdir /etc/yum.repos.d/bak
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak  
wget -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo   http://mirrors.aliyun.com/repo/epel-7.repo
sed -ri 's@(.*aliyuncs)@#\1@g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache 
#yum update -y --exclude=kernel* --exclude=centos-release* --skip-broken
yum install -y wget vim bash-completion lrzsz net-tools nfs-utils yum-utils rdate ntpdate iotop iftop
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
. /etc/locale.conf
#echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
#sysctl -p
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -ri 's#^(SELINUX=).*$#\1disabled#g' /etc/selinux/config
setenforce 0
systemctl stop NetworkManager
systemctl disable NetworkManager

2、添加多个yum源

2.1、第1步已经下载了阿里的基础源和epel源

2.2、添加openstack-train源

yum -y install centos-release-openstack-train

2.3、添加 ceph-nautilus 源

cat <<EOF>/etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64
enabled=1
gpgcheck=0

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=0

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
EOF

3、安装相关软件包

yum -y install createrepo yum-utils httpd reposync
systemctl enable --now httpd 

4、创建仓库目录

mkdir -p /var/www/html/yumrepos

5、根据 repo文件 同步软件包(所有[section]中的 rpm 包)到本地

reposync -p /var/www/html/yumrepos/

如果只想同步 CentOS-Base.repo 中指定块[section]中的 rpm 包,可以指定名称同步

reposync -n --repoid=base --repoid=updates -p /var/www/html/yumrepos/
reposync -n --repoid=ceph --repoid=ceph-noarch -p /var/www/html/yumrepos/
reposync -n --repoid=centos-openstack-train -p /var/www/html/yumrepos/
reposync -n --repoid=centos-qemu-ev -p /var/www/html/yumrepos/

[section]指的是:

同步下载rpm包会在/var/www/html/yumrepos/生成以section命名的目录

6、使用 createrepo 命令创建本地 yum 源,即为存放于本地特定位置的众多 rpm 包建立索引,描述各包所需依赖信息,并形成元数据

进到 /var/www/html/yumrepos/ 目录下的每一个目录执行 createrepo . 命令

for i in `ls /var/www/html/yumrepos`;do cd /var/www/html/yumrepos/$i&&createrepo .;done

7、客户端使用yum离线源

mkdir /etc/yum.repos.d/bak
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
cat <<EOF>/etc/yum.repos.d/private.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://61.160.247.188/yumrepos/base/
gpgcheck=0
enabled=1

[epel]
name=CentOS-$releasever - epel
baseurl=http://61.160.247.188/yumrepos/epel/
gpgcheck=0
enabled=1

[updates]
name=CentOS-$releasever - Updates
baseurl=http://61.160.247.188/yumrepos/updates/
gpgcheck=0
enabled=1

[centos-openstack-train]
name=CentOS-7 - OpenStack train
baseurl=http://61.160.247.188/yumrepos/centos-openstack-train/
gpgcheck=0
enabled=1

[centos-qemu-ev]
name=CentOS-$releasever - QEMU EV
baseurl=http://61.160.247.188/yumrepos/centos-qemu-ev/
gpgcheck=0
enabled=1

[ceph]
name=ceph-Nautilus
baseurl=http://61.160.247.188/yumrepos/ceph/
gpgcheck=0
enabled=1

[ceph-noarch]
name=ceph-noarch Nautilus
baseurl=http://61.160.247.188/yumrepos/ceph-noarch/
gpgcheck=0
enabled=1

[extras]
name=CentOS-$releasever - extras
baseurl=http://61.160.247.188/yumrepos/extras/
gpgcheck=0
enabled=1
EOF

或者(推荐):

mkdir /etc/yum.repos.d/bak 
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -P /etc/yum.repos.d/ --http-user=qwe --http-passwd=qwe http://61.160.213.184/dl/centos/private.repo

存在的问题:

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

标签云