入职以来,由于公司云主机运行在内网环境下,在搭建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源。