装备本地yum源

留意:下载镜像后需校验ISO镜像的完整性和正确性
1.运用sha256sum指令校验ISO镜像的完整性和正确性,具体操作如下:
a.在下载 CentOS 7.9 ISO 镜像文件和官方供给的 sha256sum.txt 文件后,将两个文件保存到同一个目录下。
b.翻开终端或指令行工具,进入到该目录下
c.履行以下指令来生成 sha256 校验值

sha256sum CentOS-7-x86_64-DVD-2009.iso

履行后会返回一串 sha256 校验值,如下所示

e3e7a60d2a0517d12dd16f4bb797893cc4d4f4c422d4e27d78a88af93d50b56e  CentOS-7-x86_64-DVD-2009.iso

d.将生成的校验值与官方供给的 sha256sum.txt 文件中对应的校验值进行比对,假如共同则阐明镜像文件下载完整且正确。
值得留意的是,在比对校验值时,应该只取 sha256sum.txt 文件中对应 ISO 镜像的校验值,而不是将整个 sha256sum.txt 文件与生成的校验值做比对。
2.将ISO镜像上传到服务器
3.挂载ISO镜像

mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt

参数阐明:

  • -o:mount 指令的一个参数,是 Option 的首字母,后边跟的是 mount 指令的选项
  • loop:把一个文件当成硬盘分区挂载到目录
  • ro:采用只读方法挂载 默许
  • rw:采用读写方法挂载
  • iocharset:指定访问文件系统所用的字符集

例如,假如要挂载一个文件名为 data.iso 的 ISO 镜像文件,而且想以只读方法挂载,能够运用以下指令

mount -o ro,loop data.iso /mnt/iso

这将把 data.iso 文件以只读方法挂载到 /mnt/iso 目录下。相同,假如想以读写方法挂载并指定字符集为 UTF-8,能够运用以下指令:

mount -o rw,loop,iocharset=utf8 data.iso /mnt/iso

需求留意的是,这些选项的运用要根据具体情况进行挑选,运用不当可能会导致数据丢失等问题。
3.备份源装备文件

# 创立用于备份原系统的镜像装备文件的目录
mkdir /etc/yum.repos.d/bak

# 将原有的源装备文件移动到刚刚创立的bak目录
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

4.创立源装备文件

vi /etc/yum.repos.d/localdvd.repo

# 修正内容如下:
[localdvd]
name=localdvd
baseurl=file:///mnt/
gpgcheck=0
enable=1

参数阐明:

  • name:本地yum源的名称
  • baseurl:本地yum源目录途径
  • gpgcheck:是否检查GPG签名 1检查 0不检查
  • enable:是否启用本地yum源 1启用 0禁用

5.生成Yum的软件包缓存
用于生成Yum的软件包缓存,以提高yum指令的运转速度。它会下载并解析一切可用的库房装备文件,并将包信息存储在本地缓存中,供后续的yum指令运用。
-y参数表明在装置软件包时主动回答“yes”以防止问询。在运转yum makecache时运用该参数能够防止在缓存生成过程中出现提示信息并等待用户确认。

# 铲除yum缓存
yum clean all

# 生成缓存
yum makecache -y

装备阿里yum源

1.备份原有的YUM源装备文件:
在替换YUM源之前,建议备份您当前的YUM源装备文件,以防需求恢复时运用。

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载阿里云的CentOS 7 YUM源装备文件:
运用wgetcurl下载阿里云的CentOS 7 YUM源装备文件。这里咱们运用wget

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

假如您的系统没有装置wget,能够运用以下指令装置:

yum install -y wget

或者,您能够运用curl下载装备文件:

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3.铲除YUM缓存:
更换YUM源后,需求铲除YUM缓存,然后从头生成缓存。

sudo yum clean all
sudo yum makecache

自制离线yum源镜像

什么是yum源

yum是在ReddHat中的一个包管理器。根据RPM包管理,能够从指定服务器主动下载RPM包并装置,能够主动处理依靠联系,能够一次装置一切依靠的软件包,无需一次一次的下载装置。yum源就是存放rpm包以及依靠联系的服务器,一般公共网络的yum源:163、souhu、阿里、中国科技大学、清华等。

yum源标识(repo id)

  • base:之操作系统镜像源,包含了ISO镜像内的一切软件包
  • updates:包含了系统更新,升级的软件包
  • extras:扩充的软件包合集
  • epel:为“红帽系”的错做系统供给额定的软件包,适用于RHEL、CentOS和Scientific Linux
  • 自定义repo id
    以K8S yum源为例,[repo id]本地能够随意定义,主要是看baseurl衔接的源,当多个repo id重复时,会以最终加载的为准

自制离线yum

试验服务器IP为:10.0.0.28

1.装置所需软件

# createrepo:用于生成yum源各软件之间的依靠索引
# yum-utils:装置后可运用yumdownloader指令下载所需如软件包
# reposync:Reposync用于将长途yum存储同步到本地,运用yum检索包的目录
yum install -y wget yum-utils createrepo

2.装备yum源 以阿里Centos7的yum源为例

# 装备yum源 以阿里Centos7的yum源为例
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.开端全量拉取yum源

# 检查已经配好的网络源id
yum repolist

# 按照源id将网络源拉取到本地
reposync -r base -p /data/yum/
reposync -r epel -p /data/yum/
reposync -r extras -p /data/yum/
reposync -r updates -p /data/yum/
reposync -r kubernetes -p /data/yum/
reposync -r docker-ce-stable -p /data/yum/

# 生成repodata索引依靠
createrepo /data/yum/base
createrepo /data/yum/epel
createrepo /data/yum/extras
createrepo /data/yum/updates
createrepo /data/yum/kubernetes
createrepo /data/yum/docker-ce-stable

4.本地yum测验

# 在Packages同级目录中能够看到生成的repodata目录
# 运用测验
# 备份/etc/yum.repo.d/中的其他文件,手动增加
[Centos7-base]
name=centos-base
baseurl=file:///opt/base/base
gpgcheck=0
enabled=1

#其他repo id按照相同格式书写
[kubernetes] 
name=k8s
baseurl=http://192.168.12.12/yum/kubernetes
......
# 留意:baseurl能够运用file、ftp或http,目录途径要写到Package和repodata目录

# 测验
yum repolist

5.装备为内网公共yum源

# 将本地的rpm包和依靠包压缩打包,放入内网环境,这样其他服务器也能够通过增加自定义repo文件衔接yum源库房了

# 装置nginx使其他机器也能够运用
yum install -y nginx
systemctl enable --now nginx
# 装备文件如下 /etc/nginx/default.d/yum.conf
location / {
    root /data/yum;
    index index.html;
    autoindex on;
}
# 使装备文件收效
systemctl reload nginx

# 其他机器修正yum源地址
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak

#  修正内容如下 /etc/yum.repos.d/private-yum.repo
[base]
name=CentOS-Base
baseurl=http://10.0.0.28/base/
gpgcheck=0
enabled=1
[updates]
name=CentOS-Updates
baseurl=http://10.0.0.28/updates/
gpgcheck=0
enabled=1
[extras]
name=CentOS-Extras
baseurl=http://10.0.0.28/extras
gpgcheck=0
enabled=1
[epel]
name=CentOS-Contrib
baseurl=http://10.0.0.28/epel
gpgcheck=0
enabled=1
[docker-ce-stable]
name=CentOS-docker-ce-stable
baseurl=http://10.0.0.28/docker-ce-stable
gpgcheck=0
enabled=1
[kubernetes]
name=CentOS-docker-ce-stable
baseurl=http://10.0.0.28/kubernetes
gpgcheck=0
enabled=1

# 使yum源收效
yum clean all
yum makecache