入職以來,由於公司雲主機運行在內網環境下,在搭建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源。