SUSE本地软件仓库
和RHEL/CentOS相似,我们可以通过构建 CentOS本地软件仓库 和 CentOS本地HTTP软件仓库 来加速整个网络海量服务器的软件包更新。对于维护SUSE服务器,同样有这个需求。
SUSE采用的是Red Hat相同的rpm包管理,所以实际上构建软件仓库非常相似。有两种类型软件仓库:
产品介质软件仓库: 产品介质软件仓库就是安装介质(CD/DVD)的副本仓库,也就是把iso镜像复制到管理服务器上,然后
loop-mounted
,或者通过NFS从一个远程服务器挂载。这种静态软件仓库不需要修改也不更新更新和池软件仓库:更新和池软件仓库是由SUSE客户中心提供的,包含产品和扩展的所有更新和布丁。为了能够提供给本地局域网使用,需要从SUSE客户中心镜像这个软件仓库。由于更新仓库是定期更新的,所以必须保持和SUSE客户中心同步。对于这种方式,SUSE提供了订阅管理工具(Subscription Management Tool, SMT) 或 SUSE Manager。
复制产品介质仓库
在产品介质仓库中的文件是固定不变的(从DVD复制),不需要从远程源同步,只需要复制文件,然后通过NFS挂载产品仓库,或者直接挂载安装介质iso镜像文件就可以。
备注
SUSE Linux Enterprise Server product repository必须直接从本地直接访问,不可以创建目录的符号软链接,否则会导致通过PXE启动失败。
产品介质必须复制到特定目录:
SUSE Linux Enterprise Server 12 SP4 DVD #1: 复制到
/srv/tftpboot/suse-12.4/x86_64/install
目录SUSE OpenStack Cloud Crowbar 9 DVD #1: 复制到
/srv/tftpboot/suse-12.4/x86_64/repos/Cloud
备注
我的实践是 SLES 12 sp3 ,所以我复制目录是 /srv/tftpboot/suse-12.3/x86_64/install
在服务器端创建目录并挂载ISO镜像进行(只读):
mkdir -p /srv/tftpboot/suse-12.3/x86_64/install mount -o loop SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso /srv/tftpboot/suse-12.3/x86_64/install
服务器端安装NFS支持:
yum install nfs-utils
服务器端启动NFS服务:
systemctl enable nfs-server systemctl start nfs-server
在服务器端创建NFS输出,即编辑
/etc/exports
添加内容:/srv/tftpboot/suse-12.3/x86_64/install *(ro,sync,no_root_squash,no_subtree_check)
服务器端输出配置的NFS共享:
exportfs -a
需要NFS服务器输出的软件仓库的SUSE客户机执行以下命令挂载远程服务器NFS:
mkdir -p /srv/tftpboot/suse-12.3/x86_64/install/ mount -t nfs 192.168.1.10:/srv/tftpboot/suse-12.3/x86_64/install/ /srv/tftpboot/suse-12.3/x86_64/install/
挂载以后,在客户机上执行 df -h
可以看到挂载的目录:
192.168.1.10:/srv/tftpboot/suse-12.3/x86_64/install 3.6G 3.6G 0 100% /srv/tftpboot/suse-12.3/x86_64/install
备注
实际上zypper可以直接添加 nfs 的仓库:
zypper addrepo nfs://192.168.1.10:/srv/tftpboot/suse-12.3/x86_64/install
更新和池仓库
Update and Pool Repositories是在管理服务器上用于设置和维护所有软件包的仓库,由SUSE Customer Center提供,包含所有更新和补丁。在部署大型应用软件,例如部署SUSE OpenStack,就需要使用最新软件版本的更新和池仓库。