制作离线 yum 源
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
存在的问题: