第 13 章 更改代理设置
RHUI 可以使用代理服务器来同步红帽内容。如果在安装 RHUI 时没有指定代理服务器,则不使用任何代理服务器。否则,此代理服务器会与您添加的所有 RHUI 软件仓库一起使用。本章论述了如何更改代理服务器配置。
13.1. 配置新的代理服务器或取消配置现有代理服务器 复制链接链接已复制到粘贴板!
如果要:
- 在没有代理服务器配置的 RHUI 环境中开始使用代理服务器
- 编辑当前的代理服务器配置,例如,如果服务器主机名已更改
- 停止使用安装 RHUI 环境的代理服务器
流程
可通过两种方式配置(或未配置)代理服务器设置。
第一个选项:重新运行安装程序以更新全局 RHUI 工具配置和回答文件:
rhui-installer --rerun --proxy-protocol <PROTOCOL> \ --proxy-hostname <HOSTNAME> \ --proxy-port <PORT> \ --proxy-username <USERNAME> \ --proxy-password <PASSWORD>rhui-installer --rerun --proxy-protocol <PROTOCOL> \ --proxy-hostname <HOSTNAME> \ --proxy-port <PORT> \ --proxy-username <USERNAME> \ --proxy-password <PASSWORD>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 第二个选项:创建(或编辑)本地覆盖文件
/root/.rhui/rhui-tools-custom.conf,使其包含:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这个选项是在 RHUI 4.11 中引入的。
在这两种情况下,参数如下:
如果配置代理服务器,
PROTOCOL是http或https;如果未配置它:-
如果重新运行安装程序,请不要使用
--proxy-protocol参数 - 如果使用本地文件,请将该值留空
-
如果重新运行安装程序,请不要使用
HOSTNAME是新的代理服务器主机名;如果清除配置:-
如果重新运行安装程序,请在双引号中使用空字符串(
"") - 如果使用本地文件,请将该值留空
-
如果重新运行安装程序,请在双引号中使用空字符串(
PORT是代理服务器正在侦听的 TCP 端口,通常为3128;如果清除配置:-
如果重新运行安装程序,请不要使用
-proxy-port参数 - 如果使用本地文件,请将该值留空
-
如果重新运行安装程序,请不要使用
USERNAME是一个可选参数。仅在代理服务器需要凭证时才使用它。如果没有或者您要清除配置:-
如果重新运行安装程序,请使用
"" -
如果使用本地文件,请将值留空,或者根本不使用
proxy_user:选项
-
如果重新运行安装程序,请使用
PASSWORDditto.示例:
开始使用代理服务器,此服务器不需要凭证。
使用安装程序:
rhui-installer --rerun --proxy-protocol http --proxy-hostname squid.example.com --proxy-port 3128
rhui-installer --rerun --proxy-protocol http --proxy-hostname squid.example.com --proxy-port 3128Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用本地文件:
[proxy] proxy_host: squid.example.com proxy_protocol: http proxy_port: 3128
[proxy] proxy_host: squid.example.com proxy_protocol: http proxy_port: 3128Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更改代理服务器主机名,其他所有主机名都保持不变。
使用安装程序:
rhui-installer --rerun --proxy-hostname newsquid.example.com
rhui-installer --rerun --proxy-hostname newsquid.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用本地文件:
[proxy] proxy_host: newsquid.example.com
[proxy] proxy_host: newsquid.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
停止使用代理服务器。
使用安装程序:
rhui-installer --rerun --proxy-hostname ""
rhui-installer --rerun --proxy-hostname ""Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用本地文件:
[proxy] proxy_protocol: proxy_host: proxy_port:
[proxy] proxy_protocol: proxy_host: proxy_port:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要这个新配置只会影响在配置更新后添加的红帽软件仓库。要将这个新配置应用到现有存储库,需要删除、添加和重新同步存储库。
这将导致在您删除时持续出现停机,直到您重新同步它们。但是,已经同步的软件包不必从 Red Hat CDN 重新下载。RHUI 主要需要解析所有 repodata 文件,并确定哪个软件包属于什么位置。这可能需要长达几个小时。
虽然
rhui-manager之外存在技术意味着,可以对现有存储库修改代理字段,而是针对使用此类 方法的所谓的远程方式进行修改。
请确定您有一个仓库的列表(或列表),以便您可以再次添加它们。如果没有这样的列表,您可以使用
rhui-manager生成包含所有当前添加的红帽存储库的文件。要生成红帽软件仓库列表,首先每行创建一个 ID 的原始列表:
rhui-manager --noninteractive repo list --redhat_only --ids_only > /root/rawlist
rhui-manager --noninteractive repo list --redhat_only --ids_only > /root/rawlistCopy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,使用存储库创建 YAML 文件。首先创建一个存根:
echo -e "name: all Red Hat repositories\nrepo_ids:" > /root/repo_list.yml
echo -e "name: all Red Hat repositories\nrepo_ids:" > /root/repo_list.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 接下来,将原始列表中的存储库作为 YAML 列表项附加:
sed "s/^/ - /" /root/rawlist >> /root/repo_list.yml
sed "s/^/ - /" /root/rawlist >> /root/repo_list.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从您的 RHUI 中删除所有红帽软件仓库:
使用文本用户界面,或者通过命令行删除它们。对于后者,您可以使用之前创建的原始列表:
while read repo; do rhui-manager --noninteractive repo delete --repo_id $repo; done < /root/rawlist
while read repo; do rhui-manager --noninteractive repo delete --repo_id $repo; done < /root/rawlistCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在异步后台任务中删除存储库:排队并执行可用的 Pulp worker。可能需要十分钟或小时时间来实际删除所有存储库。请耐心等待。
删除存储库后,重新添加它们。这一次将使用新的代理设置(或使用代理 URL)添加它们。还必须重新同步存储库。您可以在命令行中在一个步骤中添加和重新同步它们:
rhui-manager --noninteractive repo add_by_file --file /root/repo_list.yml --sync_now
rhui-manager --noninteractive repo add_by_file --file /root/repo_list.yml --sync_nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,使用您自己的方法同步存储库,例如按照特定顺序进行同步。最后,您还可以等待同步自动启动:在 6 小时内或在
/etc/rhui/rhui-tools.conf中定义为repo_sync_frequency的其他时间。重要在任何情况下,存储库不会同时可用。
验证
rhui-manager 工具不会显示与存储库一起使用的代理服务器的信息。但是,您可以使用 pulpcore-manager 工具,如下所示:
env PULP_SETTINGS=/etc/pulp/settings.py /usr/bin/pulpcore-manager shell << EOM from pulpcore.app.models import Remote rem = Remote.objects.get(name="rhel-8-for-x86_64-baseos-rhui-rpms-8") print(rem.proxy_url) EOM
env PULP_SETTINGS=/etc/pulp/settings.py /usr/bin/pulpcore-manager shell << EOM
from pulpcore.app.models import Remote
rem = Remote.objects.get(name="rhel-8-for-x86_64-baseos-rhui-rpms-8")
print(rem.proxy_url)
EOM
输出应该类似于对于配置的代理服务器:
http://squid.example.com:3128
http://squid.example.com:3128
如果没有使用指定存储库配置代理服务器,则为 None。