入职以来,由于公司云主机运行在内网环境下,在搭建kubernetes和openshift集群时都需要进行离线安装,这里粗略记录一下本地yum仓库的搭建过程。

httpd配置

安装httpd

在目标服务器上安装httpd。

# yum install -y httpd

修改httpd端口号

我的80端口已被占用,故这里修改httpd的端口号。
修改/etc/httpd/conf/httpd.conf。
将Listen 80改为Listen 8180。

创建发布yum源的httpd配置文件

# vim /etc/httpd/conf.d/yum.conf

内容如下:

Alias /repo "/var/www/html/yum"

防火墙设置

这里有两种操作。

  • 禁用防火墙
# systemctl disable firewalld
# systemctl stop firewalld
  • 修改iptables并增加selinux中http的端口

由于我的yum仓库部署在openshift集群的master节点上,故这里采用修改iptables并增加selinux中http的端口的方式。
修改/etc/sysconfig/iptables。添加如下规则:

-A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 8180 -j ACCEPT

重启iptables服务。

# systemctl restart iptables

增加selinux中http的端口。

# semanage port -a -t http_port_t -p tcp 8180

重启Httpd,使修改的配置生效

# systemctl enable httpd
# systemctl restart httpd

配置yum源目录

RPM包的准备

可通过yum install --downloadonly --downloaddir=temp packageName的指令下载RPM包,也可以通过reposync同步目标源到本地,这里可以自行选择适合的方式。

上传所有RPM包到目标服务器/var/www/html/yum目录下

我采用ftp的方式将所有RPM包传到了目标服务器上,目录可以自定义(修改目录的话,可能需要对httpd的配置文件做修改,不然可能会出现403 - Forbidden等错误,我没深入研究)。这里采用的目录是/var/www/html/yum。
上传成功后在目标服务器上执行:

# createrepo /var/www/html/yum

这里写图片描述

yum服务器节点创建 /etc/yum.repos.d/local.repo文件

内容如下:

[local]
name = local
baseurl = file:///var/www/html/yum
gpgcheck = 0
enabled = 1

验证

yum服务器节点验证

# yum clean all 
# yum repolist

这里写图片描述
可以看出已经加载了上文建立的名为local的yum源。

其他节点验证

创建/etc/yum.repos.d/local.repo文件,指向上文创建的yum源。
内容如下:

[local]
name = local
baseurl = http://10.126.3.207:8180/repo/
gpgcheck = 0
enabled = 1
# yum clean all 
# yum repolist

这里写图片描述

可以看出已经加载了上文建立的名为local的yum源。

Logo

开源、云原生的融合云平台

更多推荐