Centos7下使用Cobbler搭建YUM(REPO)源

一、 写作背景

公司内网开发测试、IDC 机房均需要大量安装 Linux 类系统,手动一台一台安装,繁琐复杂,而且极易出错,工作量大,007 都有可能,故需采用自动化安装方式,一次调整,到处使用。

在本地搭建Repos源,可以大量节省网络带宽,加快系统安装,还可以自定义一些软件的安装,可以通过命令行添加,或通过WEB添加。

这里主要以Redhat家族的YUM源为例。其它源添加方式类似。

二、 环境准备

1、Centos7系统:CentOS7系统安装

2、Cobbler系统 :搭建Cobbler服务安装Linux系统

3、各镜像站的Repos源地址:阿里云镜像源清华大学镜像源

三、 软件安装

有些源可以直接使用 cobbler reposync 命令同步YUM源,有些需要使用 reposync 命令。使用 cobbler reposync 可以自动生成 repo文件,reposync 需要手动生成 repo 故需要安装 createrepo

yum -y install createrepo

四、YUM源配置

4.1 使用命令行方式

# 如添加 Centos 的 Base 源(使用阿里云的镜像源)则使用 add 命令,其它类似。
cobbler repo add --name=CentOS7.2-x86_64-Base --mirror=https://mirrors.aliyun.com/centos/7/os/x86_64/

# 如果添加后有些地方需要修改,则使用 edit 命令
cobbler repo edit --name=centos7.2-x86_64-base --mirror=https://mirrors.aliyun.com/centos/7/os/x86_64/ --arch=x86_64 --breed=yum

# 移除 Repo 使用 remove 命令
cobbler repo remove --name=centos7.2-x86_64-base

# 查看 repo 使用 LIst 命令
cobbler repo list

# 其它功能请使用  cobbler repo --help 查看。

4.2 使用Web管理方式

在Configuration项目中找到 Repos 项目,然后根据提示填写相关项目。

WEB添加YUM源

在 mirror 中填写 YUM 源的地址,如果有固定来源,比如来自阿里云的镜像源,则选中 Keep Update 项,以保证在执行 cobbler reposync 时可以自动同步。如果是自定义源,则不要选中。

其它选项可以不写。

4.3 YUM 源查找方式

同步YUM源最主要的是查找到对的YUM源,如果需要在各镜像源网站查找,最好的办法就是按照镜像源网站指定的方式,安装一下他们的Reop文件,然后从Repo文件中提取需要的信息。

4.3.1 常规源

各大镜像站都有,可以根据访问速度,优先选用。清华大学镜像源中科大镜像源北京理工大学镜像源,这几个学校镜像源,资源丰富,更新速度也快。阿里云镜像源等企业镜像源,访问速度快。总体来说,这些镜像源满足了日常工作所需。

这里以Centos7的阿里云源为例,首先到阿里云镜像站上下载 Repo 文件,然后查看该 Repo 文件。

按照目录树的分布方式,我将 Centos 等常见的源称为常规源,其目录结构大多为repodata目录和Package目录在同一目录下,或者repodata目录和rpm文件在同一目录下,如下所示:

常规源目录结构

常规源目录结构

# wget https://mirrors.aliyun.com/repo/Centos-7.repo

# cat Centos-7.repo

下面就是阿里云的YUM源配置,其中releasever 是指当前系统的版本号,可以通过 `cat /etc/redhat-release` 查看,basearch 是指当前系统的架构(64位系统或32位系统),可以通过 uname -p 查看。

其中 [base] 就是我们需要的Repo名称,baseurl 后面的地址就是我们需要的 repo 地址,因为是搭建内部本地源,所以gpg验证之类的可以忽略。

同样的方式找到其它源的地址进行添加。

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

4.3.2 特殊源添加

有一些Repo源的repodata和Package目录不在一起,同步时略有问题,所以此类源需要单独对待,如Kubernetes源,它的Package目录在repodata的上三级目录中,所以同步时会出现问题。这类源在添加时就不能选中 Keep Update 项,需要手动更新了。

kubernetes源目录

4.3.3 自定义源添加

众所周知,Centos中所使用的 jdk 是Openjdk,而有些开发使用的是 oracle jdk 需要在系统中安装 对应版本,这类软件在常规的YUM源中不太好操作,这里我们把它们做成自定义YUM源,操作方式如下:

# 首先在repo源的主目录下添加一个软件目录用于存放这类软件和相应的repodata文件。Cobbler系统中Repo源的目录是 /var/www/cobbler/repo_mirror/

mkdir -p /var/www/cobbler/repo_mirror/othet-soft/Package

# 然后将软件存放到这个目录下,软件最好采用官网上的名称,比如oracle jdk 的名称是: jdk-8u221-linux-x64.rpm ,保持这个名称不变。

mv /root/jdk-8u221-linux-x64.rpm /var/www/cobbler/repo_mirror/othet-soft/Package/

# 再执行 createrepo 命令生成 repodata 文件

createrepo /var/www/cobbler/repo_mirror/other-soft

生成自定义YUM源

# 最后为了在Cobbler 系统中使用,需要一个config.repo文件,从其它由Cobbler reposync命令生成的源中复制一份,然后修改一下就行。

cp /var/www/cobbler/repo_mirror/centos7-base/config.repo /var/www/cobbler/repo_mirror/other-soft/config.repo

vim /var/www/cobbler/repo_mirror/other-soft/config.repo

# 修改为以下内容

[other-soft]
name=other-soft
baseurl=http://${http_server}/cobbler/repo_mirror/other-soft
enabled=1
priority=99
gpgcheck=0

五、 同步YUM源

5.1 常规源

常规源在添加时选中 Keep Update 项,然后可以在网页上点击执行 cobbler reposync,不过这里建议在终端执行命令,可以看到同步过程。

# 执行全部更新,
cobbler reposync [--tries=N] [--no-fail]

# 同步指定源  

cobbler reposync --only=centos7-base

repo更新

5.2 同步特殊源

添加源名称、地址后,不要选中 Keep Update 项,然后使用 reposync 更新

# 先将指定源的repo文件放到 /etc/yum.repos.d/ 目录下, 更新yum源
mv kubernetes.repo /etc/yum.repos.d/kubernetes.repo
yum clean all
yum makecache

# 查看repolist
yum repolist

repolist

# 再执行 reposync 命令,同步源
reposync -n --repoid=kubernetes -p /var/www/cobbler/repo_mirror/ --allow-path-traversal

同步Kubernetes源

# 最后执行 createrepo 命令,并生成config.repo文件
createrepo /var/www/cobbler/repo_mirror/kubernetes/

生成repo

cat /var/www/cobbler/repo_mirror/kubernetes/config.repo

[kubernetes]
name=kubernetes
baseurl=http://${http_server}/cobbler/repo_mirror/kubernetes
enabled=1
priority=99
gpgcheck=0

5.3 自定义源

参见4.3.3,每次添加新软件,就执行一次。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 long@longger.xin

文章标题:Centos7下使用Cobbler搭建YUM(REPO)源

字数:1.6k

本文作者:Longger

发布时间:2019-08-20, 13:59:30

最后更新:2024-11-01, 15:02:59

原始链接:https://www.longger.xin/article/41354.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

github