入职以来,由于公司云主机运行在内网环境下,在搭建kubernetes和openshift集群时都需要进行离线安装,这里粗略记录一下本地yum仓库的搭建过程。
在目标服务器上安装httpd。
# yum install -y httpd
我的80端口已被占用,故这里修改httpd的端口号。 修改/etc/httpd/conf/httpd.conf。 将Listen 80改为Listen 8180。
# vim /etc/httpd/conf.d/yum.conf
内容如下:
Alias /repo "/var/www/html/yum"
这里有两种操作。
# systemctl disable firewalld
# systemctl stop firewalld
由于我的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
# systemctl enable httpd
# systemctl restart httpd
可通过yum install --downloadonly --downloaddir=temp packageName
的指令下载RPM包,也可以通过reposync同步目标源到本地,这里可以自行选择适合的方式。
我采用ftp的方式将所有RPM包传到了目标服务器上,目录可以自定义(修改目录的话,可能需要对httpd的配置文件做修改,不然可能会出现403 - Forbidden等错误,我没深入研究)。这里采用的目录是/var/www/html/yum。 上传成功后在目标服务器上执行:
# createrepo /var/www/html/yum
内容如下:
[local]
name = local
baseurl = file:///var/www/html/yum
gpgcheck = 0
enabled = 1
# 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源。