5.2. 更新断开连接的 Satellite 服务器
本节介绍了在 Air-gapped Disconnected setup 中更新所需的步骤,其中连接的卫星服务器(从 CDN 同步内容)与断开连接的 Satellite 服务器没有差距。
在连接的卫星服务器上完成以下步骤。
确保您已在连接的卫星服务器中同步以下存储库。
rhel-7-server-ansible-2.9-rpms rhel-7-server-rpms rhel-7-server-satellite-6.10-rpms rhel-7-server-satellite-maintenance-6-rpms rhel-server-rhscl-7-rpms
-
下载机构的调试证书并将其保存到本地,例如
/etc/pki/katello/certs/org-debug-cert.pem
或您选择的位置。 使用以下存储库信息在
/etc/yum.repos.d
中创建 Yum 配置文件:[rhel-7-server-ansible-2.9-rpms] name=Ansible 2.9 RPMs for Red Hat Enterprise Linux 7 Server x86_64 baseurl=https://satellite.example.com/pulp/content/My_Organization/Library/content/dist/rhel/server/7/$releasever/$basearch/ansible/2.9/os/ enabled=1 sslclientcert = /etc/pki/katello/certs/org-debug-cert.pem sslclientkey = /etc/pki/katello/certs/org-debug-cert.pem sslcacert = /etc/pki/katello/certs/katello-server-ca.crt sslverify = 1 [rhel-7-server-rpms] name=Red Hat Enterprise Linux 7 Server RPMs x86_64 baseurl=https://satellite.example.com/pulp/content/My_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/os/ enabled=1 sslclientcert = /etc/pki/katello/certs/org-debug-cert.pem sslclientkey = /etc/pki/katello/certs/org-debug-cert.pem sslcacert = /etc/pki/katello/certs/katello-server-ca.crt sslverify = 1 [rhel-7-server-satellite-6.10-rpms] name=Red Hat Satellite 6 for RHEL 7 Server RPMs x86_64 baseurl=https://satellite.example.com/pulp/content/My_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/satellite/6.10/os/ enabled=1 sslclientcert = /etc/pki/katello/certs/org-debug-cert.pem sslclientkey = /etc/pki/katello/certs/org-debug-cert.pem sslcacert = /etc/pki/katello/certs/katello-server-ca.crt [rhel-7-server-satellite-maintenance-6-rpms] name=Red Hat Satellite Maintenance 6 for RHEL 7 Server RPMs x86_64 baseurl=https://satellite.example.com/pulp/content/My_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/sat-maintenance/6/os/ enabled=1 sslclientcert = /etc/pki/katello/certs/org-debug-cert.pem sslclientkey = /etc/pki/katello/certs/org-debug-cert.pem sslcacert = /etc/pki/katello/certs/katello-server-ca.crt sslverify = 1 [rhel-server-rhscl-7-rpms] name=Red Hat Software Collections RPMs for Red Hat Enterprise Linux 7 Server x86_64 baseurl=https://satellite.example.com/pulp/content/My_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/rhscl/1/os/ enabled=1 sslclientcert = /etc/pki/katello/certs/org-debug-cert.pem sslclientkey = /etc/pki/katello/certs/org-debug-cert.pem sslcacert = /etc/pki/katello/certs/katello-server-ca.crt sslverify = 1
-
在配置文件中,将
sslclientcert
中的/etc/pki/katello/certs/org-debug-cert.pem
替换为下载的机构调试证书的位置。 -
为您的部署更新
satellite.example.com
正确的 FQDN。 将
My_Organization
替换为baseurl
中的正确组织标签。要获取机构标签,请输入以下命令:# hammer organization list
输入
reposync
命令:# reposync --delete --download-metadata -p ~/Satellite-repos -n \ -r rhel-7-server-ansible-2.9-rpms \ -r rhel-7-server-rpms \ -r rhel-7-server-satellite-6.10-rpms \ -r rhel-7-server-satellite-maintenance-6-rpms \ -r rhel-server-rhscl-7-rpms
这会将存储库的内容从连接的卫星服务器下载,并将它们存储在
~/Satellite-repos
目录中。Red Hat Enterprise Linux 7 中的reposync
命令下载 RPM,而不是 Yum 元数据。因此,您必须在
Satellite-repos
的每个子目录中手动运行createrepo
。请确定您安装了createrepo
rpm。如果没有使用以下命令进行安装:# satellite-maintain packages install createrepo
运行以下命令,以在
~/Satellite-repos
的每个子目录中创建 repodata。# cd ~/Satellite-repos # for directory in */ do echo "Processing $directory" cd $directory createrepo . cd .. done
-
验证 RPM 已经下载,并且位于
~/Satellite-repos
的各个子目录中是否生成了存储库数据目录。 归档目录的内容
# cd ~ # tar czf Satellite-repos.tgz Satellite-repos
-
使用生成的
Satellite-repos.tgz
文件在非联网卫星服务器中升级。
在非联网卫星服务器上执行以下步骤
-
将生成的
Satellite-repos.tgz
文件复制到断开连接的 Satellite 服务器中 将存档 提取到可由
root
用户访问的任意位置。在以下示例中,/root
是提取位置。# cd /root # tar zxf Satellite-repos.tgz
使用以下存储库信息在
/etc/yum.repos.d
中创建 Yum 配置文件:[rhel-7-server-ansible-2.9-rpms] name=Ansible 2.9 RPMs for Red Hat Enterprise Linux 7 Server x86_64 baseurl=file:///root/Satellite-repos/rhel-7-server-ansible-2.9-rpms enabled=1 [rhel-7-server-rpms] name=Red Hat Enterprise Linux 7 Server RPMs x86_64 baseurl=file:///root/Satellite-repos/rhel-7-server-rpms enabled=1 [rhel-7-server-satellite-6.10-rpms] name=Red Hat Satellite 6 for RHEL 7 Server RPMs x86_64 baseurl=file:///root/Satellite-repos/rhel-7-server-satellite-6.10-rpms enabled=1 [rhel-7-server-satellite-maintenance-6-rpms] name=Red Hat Satellite Maintenance 6 for RHEL 7 Server RPMs x86_64 baseurl=file:///root/Satellite-repos/rhel-7-server-satellite-maintenance-6-rpms enabled=1 [rhel-server-rhscl-7-rpms] name=Red Hat Software Collections RPMs for Red Hat Enterprise Linux 7 Server x86_64 baseurl=file:///root/Satellite-repos/rhel-server-rhscl-7-rpms enabled=1
-
在配置文件中,将
/root/Satellite-repos
替换为提取的位置。 检查可用的版本以确认列出了下一个次版本:
# satellite-maintain upgrade list-versions
使用健康检查选项来确定系统是否已准备好升级。首次使用这个命令时,
satellite-maintain
会提示您输入 hammer admin 用户凭证,并将其保存在/etc/foreman-maintain/foreman-maintain-hammer.yml
文件中。# satellite-maintain upgrade check --whitelist="check-upstream-repository,repositories-validate" --target-version 6.10.z
- 在执行升级前,查看结果并解决所有突出显示的错误条件。
由于更新时间较长,请使用
屏幕
等实用程序暂停并重新附加通信会话。然后,您可以检查升级进度,而无需持续连接到命令 shell。有关使用 screen 命令的更多信息,请参阅 Red Hat 知识库 中的 如何使用 screen 命令?如果您丢失了运行 upgrade 命令的命令 shell,您可以看到
/var/log/foreman-installer/satellite.log
文件中的日志信息,以检查进程是否已成功完成。执行升级:
# satellite-maintain upgrade run --whitelist="check-upstream-repository,repositories-validate" --target-version 6.10.z
检查内核软件包是否最后一次更新:
# rpm -qa --last | grep kernel
可选: 如果自上次重启以来发生内核更新,停止
satellite-maintain
服务并重启系统:# satellite-maintain service stop # reboot