yum 本地仓库搭建(epel docker base base-extra kubernetes)
起因
最近一直在搭各种服务,每次用外网更新都浪费很多时间,一直想做个完整的仓库,但之前一直使用yum --downloadonly导致始终无法做到完整的离线库,今天发现了reposync命令,就把几个常用的库都搬下来了。
1 安装建库所需工具
yum install -y yum-utils device-mapper-persistent-data lvm2 createrepo wget
2 加载几个常用的阿里源
2.1 epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.2 kubernetes源
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2.3 Docker 源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
3. 查看yum仓库
[root@yum-centos7 yum]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base CentOS-7 - Base 10,097
base-ex CentOS-7 - Base-ex 307
docker docker-ce 63
epel epel 13,501
kubernetes Kubernetes 442
repolist: 24,410
3.1 下载仓库
reposync -r docker -p /yum
reposync -r epel -p /yum
reposync -r kubernetes -p /yum
reposync -r base-ex -p /yum
base光盘上有,用以下命令创建
mount /dev/cdrom /mnt
mkdir -p /yum/base/Packages
cp /mnt/Packages/* /yum/base/Packages
3.2 创建 reopdata仓库,生成仓库信息
createrepo /yum/kubernetes/
createrepo /yum/epel
createrepo /yum/base
createrepo /yum/extras
createrepo /yum/docker-ce-stable
3.3 配置repo
放一起也可以,分开放也可以
[root@yum-centos7 ~]# vi /etc/yum.repos.d/centos7.repo
[base]
name=CentOS-$releasever - Base
baseurl=file:///yum/base
enabled=1
gpgcheck=0
[base-ex]
name=CentOS-$releasever - Base-ex
baseurl=file:///yum/extras
enabled=1
gpgcheck=0
[epel]
name=epel
baseurl=file:///yum/epel
enabled=1
gpgcheck=0
[docker]
name=docker-ce
baseurl=file:///yum/docker-ce-stable
enabled=1
gpgcheck=0
[k8s]
name=k8s
baseurl=file:///yum/kubernetes
enabled=1
gpgcheck=0
4. 安装nginx
yum clean all
yum makecache
yum install nginx -y
4.1 配置nginx
grep -vE "#|^$" /etc/nginx/nginx.conf >/etc/nginx/nginx.conf.bak
mv /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
....
server {
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
listen 80 default_server;
listen [::]:80 default_server;
server_name yum;
root /yum;
}
systemctl restart nginx
[root@yum-centos7 ~]# ss -ntulp |grep 80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=2839,fd=6),("nginx",pid=2838,fd=6),("nginx",pid=2837,fd=6))
tcp LISTEN 0 128 [::]:80 [::]:* users:(("nginx",pid=2839,fd=7),("nginx",pid=2838,fd=7),("nginx",pid=2837,fd=7))
4.2 通过浏览器访问
4.3 替换repo文件
sed -i 's#file:///yum#http://192.168.31.200#g' /etc/yum.repos.d/centos7.repo
[root@yum-centos7 ~]# cat /etc/yum.repos.d/centos7.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.31.200/base
enabled=1
gpgcheck=0
[base-ex]
name=CentOS-$releasever - Base-ex
baseurl=http://192.168.31.200/extras
enabled=1
gpgcheck=0
[epel]
name=epel
baseurl=http://192.168.31.200/epel
enabled=1
gpgcheck=0
[docker]
name=docker-ce
baseurl=http://192.168.31.200/docker-ce-stable
enabled=1
gpgcheck=0
[k8s]
name=docker-ce
baseurl=http://192.168.31.200/kubernetes
enabled=1
gpgcheck=0