本地 yum 源配置
优质
小牛编辑
135浏览
2023-12-01
本部分下载 OpenShift 所需要的安装包,并基于http 服务器创建本地 yum 源。
绑定订阅账户
注册账户# subscription-manager register --username=<user_name> --password=<password>
查找包含 OpenShift 订阅的 Pool ID# subscription-manager list --available --matches '*OpenShift Container Platform*'
绑定 Pool ID# subscription-manager attach --pool=<YOUR_POOL_ID>
启用 OpenShift 需要的 Repo
禁止所有的 repo# subscription-manager repos --disable="*"
查看是否还有未被禁止的 repo# yum repolist
如果还有未被禁止的 repo,手工禁止它# yum-config-manager --disable <repo_id>
# yum-config-manager --disable \*
创建本地 YUM 源
同步安装包到本地目录
1 - 创建本地目录mkdir -p /opt/ocp
2 - 启用 OCP 所需的 repo# subscription-manager repos \
--enable="rhel-7-server-rpms" \
--enable="rhel-7-server-extras-rpms" \
--enable="rhel-7-server-ose-3.10-rpms" \
--enable="rhel-7-fast-datapath-rpms" \
--enable="rhel-7-server-ansible-2.4-rpms"
3 - 下载安装包到本地目录for repo in \
rhel-7-server-rpms \
rhel-7-server-extras-rpms \
rhel-7-server-ose-3.10-rpms \
rhel-7-fast-datapath-rpms \
rhel-7-server-ansible-2.4-rpms
do
reposync -lmn --repoid=${repo} --download_path=/opt/ocp
createrepo -v /opt/ocp/${repo} -o /opt/ocp/${repo}
done
reposync 的作用是将 yum 源仓库同步到本地目录,如果 reposync 不存在,可以通过 yum install -y yum-utils
安装 reposync 包,reposync 通过相应的参数控制同步的过程:
-l
支持 yum 插件-m
支持下载 comps.xml--repoid
或-r
指定要查询的repo id,可以多次指定(默认全部启用)--download_path
或-p
指定将软件包下载到的路径,默认为当前目录-n
仅同步最新的包
createrepo 的作用是基于一组 rpm 包创建一个repomd(基于 xml 的 rpm 元数据)仓库,相关控制参数如下:
-v
- 冗余的方式运行-o
- 指定输出的目录--workers
- 读取 rpms 的并发数量
createrepo --workers=5 /opt/ocp/
安装配置 httpd
1 - 安装 httpdyum -y install httpd
2 - 创建 httpd 配置文件,以发布 YUM 源cat << EOF > /etc/httpd/conf.d/yum.conf
Alias /repo "/opt/ocp"
<Directory "/opt/ocp">
Options +Indexes +FollowSymLinks
Require all granted
</Directory>
<Location /repo>
SetHandler None
</Location>
EOF
3- 重启 httpd,使修改生效systemctl enable httpd
systemctl restart httpd
4- 添加 iptables 规则,运行 80 端口访问cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak.$(date "+%Y%m%d%H%M%S");
sed -i '/.*--dport 22 -j ACCEPT.*/a\-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT' /etc/sysconfig/iptables;
sed -i '/.*--dport 22 -j ACCEPT.*/a\-A INPUT -p udp -m state --state NEW -m udp --dport 80 -j ACCEPT' /etc/sysconfig/iptables;
systemctl restart iptables.service
测试 YUM 源配置
1 - 在任意 Linux 节点上添加如下 YUM 配置cat << EOF > /etc/yum.repos.d/ocp.repo
[rhel-7-server-rpms]
baseurl = http://yum.example.com/repo/rhel-7-server-rpms
enabled = 1
gpgcheck = 0
name = rhel-7-server-rpms
[rhel-7-server-extras-rpms]
baseurl = http://yum.example.com/repo/rhel-7-server-extras-rpms
enabled = 1
gpgcheck = 0
name = rhel-7-server-extras-rpms
[rhel-7-server-ose-3.11-rpms]
baseurl = http://yum.example.com/repo/rhel-7-server-ose-3.11-rpms
enabled = 1
gpgcheck = 0
name = rhel-7-server-ose-3.11-rpms
[rhel-7-server-ansible-2.6-rpms]
baseurl = http://yum.example.com/repo/rhel-7-server-ansible-2.6-rpms
enabled = 1
gpgcheck = 0
name = rhel-7-server-ansible-2.6-rpms
EOF
2 - 执行输出如下命令测试 YUM 源配置yum list | grep -i atomic-openshift-client