第13章 プロキシー設定の変更
RHUI はプロキシーサーバーを使用して、Red Hat コンテンツを同期できます。RHUI のインストール時にプロキシーサーバーが指定されていない場合は、プロキシーサーバーは使用されません。それ以外の場合は、このプロキシーサーバーは、追加したすべての RHUI リポジトリーで使用されます。この章では、プロキシーサーバー設定を変更する方法を説明します。
13.1. 新しいプロキシーサーバーの設定または既存のプロキシーサーバーの設定解除 リンクのコピーリンクがクリップボードにコピーされました!
必要に応じて、次の手順を実行します。
- プロキシーサーバーの設定なしでインストールされた RHUI 環境でプロキシーサーバーの使用を開始する。
- 現在のプロキシーサーバーの設定を編集する。たとえば、サーバーのホスト名が変更された場合などです。
- RHUI 環境がインストールされたプロキシーサーバーの使用を停止する。
手順
プロキシーサーバーの設定オプションを設定 (または設定解除) するには 2 つの方法があります。
最初のオプション: インストーラーを再実行して、グローバル RHUI ツール設定と応答ファイルを更新します。
rhui-installer --rerun --proxy-protocol <PROTOCOL> \ --proxy-hostname <HOSTNAME> \ --proxy-port <PORT> \ --proxy-username <USERNAME> \ --proxy-password <PASSWORD>2 番目のオプション: ローカルオーバーライドファイル
/root/.rhui/rhui-tools-custom.confを作成 (または編集) して、次の内容を含めます。[proxy] proxy_protocol: <PROTOCOL> proxy_host: <HOSTNAME> proxy_port: <PORT> proxy_user: <USERNAME> proxy_pass: <PASSWORD>注記このオプションは、RHUI 4.11 で導入されました。
どちらの場合も、パラメーターは次のとおりです。
PROTOCOLにはhttpまたはhttpsのいずれかを指定します (プロキシーサーバーを設定する場合)。プロキシーサーバーの設定を解除する場合は、以下を確認してください。-
インストーラーを再実行する場合は、
--proxy-protocol引数を使用しないでください。 - ローカルファイルを使用する場合は、値を空のままにします。
-
インストーラーを再実行する場合は、
HOSTNAMEは新しいプロキシーサーバーのホスト名を指定します。設定を消去する場合は、以下を確認してください。-
インストーラーを再実行する場合は、二重引用符 (
"") で囲んだ空の文字列を使用します。 - ローカルファイルを使用する場合は、値を空のままにします。
-
インストーラーを再実行する場合は、二重引用符 (
PORTは、プロキシーサーバーがリッスンしている TCP ポートに指定します (通常は3128です)。設定を消去する場合は、以下を確認してください。-
インストーラーを再実行する場合は、
--proxy-port引数を使用しないでください。 - ローカルファイルを使用する場合は、値を空のままにします。
-
インストーラーを再実行する場合は、
USERNAMEはオプションのパラメーターです。プロキシーサーバーに認証情報が必要な場合にのみ使用してください。そうでない場合または、設定を消去する場合は、以下を確認してください。-
インストーラーを再実行する場合は、
""を使用します。 -
ローカルファイルを使用する場合は、値を空のままにするか、
proxy_user:オプションを使用しないでください。
-
インストーラーを再実行する場合は、
PASSWORDも同じです。例:
プロキシーサーバーの使用を開始します。このサーバーには認証情報は必要ありません。
インストーラーの場合:
rhui-installer --rerun --proxy-protocol http --proxy-hostname squid.example.com --proxy-port 3128ローカルファイルの場合:
[proxy] proxy_host: squid.example.com proxy_protocol: http proxy_port: 3128
プロキシーサーバーのホスト名を変更します。その他はすべて同じままです。
インストーラーの場合:
rhui-installer --rerun --proxy-hostname newsquid.example.comローカルファイルの場合:
[proxy] proxy_host: newsquid.example.com
プロキシーサーバーの使用を停止します。
インストーラーの場合:
rhui-installer --rerun --proxy-hostname ""ローカルファイルの場合:
[proxy] proxy_protocol: proxy_host: proxy_port:重要この新しい設定は、設定が更新された後に追加された Red Hat リポジトリーにのみ適用されます。この新しい設定を既存のリポジトリーに適用するには、リポジトリーを削除、追加、および再同期する必要があります。
これにより、削除した瞬間から再同期するまで停止状態が続きます。ただし、すでに同期されたパッケージは Red Hat CDN から再度ダウンロードする必要はありません。RHUI は主に、すべての repodata ファイルを解析し、どのパッケージがどこに属しているかを判断する必要があります。これには数時間かかる場合があります。
rhui-managerの外部には、技術的に、既存のリポジトリー (つまり、いわゆる remotes) のプロキシーフィールドを変更できる手段がありますが、そのような手段の使用はサポートされていません。
リポジトリーを再度追加できるように、リポジトリーのリスト (複数可) があることを確認してください。そのようなリストがない場合は、
rhui-managerを使用して、現在追加されているすべての Red Hat リポジトリーを含むファイルを生成できます。Red Hat リポジトリーのリストを生成するには、まず 1 行に 1 つの ID を含む生のリストを作成します。
rhui-manager --noninteractive repo list --redhat_only --ids_only > /root/rawlist次に、リポジトリーを含む YAML ファイルを作成します。まずスタブを作成します。
echo -e "name: all Red Hat repositories\nrepo_ids:" > /root/repo_list.yml次に、生のリストからリポジトリーを YAML リスト項目として追加します。
sed "s/^/ - /" /root/rawlist >> /root/repo_list.ymlRHUI からすべての Red Hat リポジトリーを削除します。
テキストユーザーインターフェイスを使用するか、コマンドラインで 1 つずつ削除します。後者の場合、先ほど作成した生のリストを使用できます。
while read repo; do rhui-manager --noninteractive repo delete --repo_id $repo; done < /root/rawlist注記リポジトリーは、非同期のバックグラウンドタスクで削除されます。つまり、利用可能な Pulp ワーカーによってキューに入れられ、実行されます。実際にすべてのリポジトリーを削除するには、数十分または数時間かかる場合があります。完了までしばらくお待ちください。
リポジトリーが削除されたら、再度追加します。今回は新しいプロキシー設定 (またはプロキシー URL なし) で追加されます。リポジトリーを再同期する必要もあります。コマンドラインで 1 つの手順で追加および再同期できます。
rhui-manager --noninteractive repo add_by_file --file /root/repo_list.yml --sync_nowまたは、独自の方法 (例: 特定の順序) を使用して、リポジトリーを同期します。最後に、同期が自動的に開始されるまで待機することも可能です。開始時間は 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
設定されたプロキシーサーバーの出力は以下のようになります。
http://squid.example.com:3128
指定のリポジトリーで設定されたプロキシーサーバーがない場合は None と出力されます。