コンテナ化された SUSE Multi-Linux Manager プロキシセットアップ

SUSE Multi-Linux Managerプロキシコンテナ用のコンテナホストが準備できたら、コンテナのセットアップには設定を完了するためにいくつかの追加手順が必要です。

プロシージャ
  1. プロキシSUSE Multi-Linux Manager設定アーカイブファイルを生成します

  2. インストールステップで準備したコンテナホストに設定アーカイブを転送し、抽出します

  3. でプロキシサービスを開始します。mgrpxy

1. プロキシ設定の生成

SUSE Multi-Linux Managerプロキシの設定アーカイブは、SUSE Multi-Linux Managerサーバによって生成されます。 追加のプロキシごとに、それぞれ独自の設定アーカイブが必要です。

コンテナ化されたSUSE Multi-Linux Managerプロキシの場合、新しいプロキシ設定ファイルを作成し、変更を反映させるためにコンテナを再デプロイする必要があります。 これは、SSL証明書を含む設定を更新するプロセスです。

Podmanのデプロイメントでは、SUSE Multi-Linux ManagerプロキシのコンテナホストをSUSE Multi-Linux Managerサーバにクライアントとして登録してから、このプロキシ設定を生成する必要があります。

プロキシFQDNが登録されたクライアントではないプロキシコンテナ設定を生成するために使用される場合(Kubernetesの使用例のように)、新しいシステムエントリがシステムリストに表示されます。 この新しいエントリは、以前に入力されたプロキシFQDN値の下に表示され、`Foreign`システムタイプになります。

周辺サーバは常にサードパーティのSSL証明書を使用しています。 ハブサーバが周辺サーバのために証明書を生成した場合、各プロキシの証明書も生成する必要があります。 そのためには、次のコマンドを実行します。

mgrctl exec -ti -- rhn-ssl-tool --gen-server --dir="/root/ssl-build" --set-country="COUNTRY" \
  --set-state="STATE" --set-city="CITY" --set-org="ORGANIZATION" \
  --set-org-unit="ORGANIZATION UNIT" --set-email="name@example.com" \
  --set-hostname=PROXY --set-cname="proxy.example.com"

使用するファイルは以下の通りです。
* `/root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT`をルートCAとして
* `/root/ssl-build/<hostname>/server.crt`をプロキシ証明書として
* `/root/ssl-build/<hostname>/server.key`をプロキシ証明書のキーとして

1.1. Web UIを使用してプロキシ設定を生成します。

プロシージャ:Web UIを使用してプロキシコンテナ設定を生成しています。
  1. Web UIで、システム  プロキシ設定に移動し、必要なデータを入力します。

  2. `Proxy FQDN`フィールドに、プロキシの完全修飾ドメイン名を入力します。

  3. `Parent FQDN`フィールドに、SUSE Multi-Linux Managerサーバまたは別のSUSE Multi-Linux Managerプロキシの完全修飾ドメイン名を入力します。

  4. `Proxy SSH port`フィールドに、SUSE Multi-Linux ManagerプロキシでSSHサービスがリスンしているSSHポートを入力します。推奨されるのは、デフォルトの8022を維持することです。

  5. `Max Squid cache size [MB]`フィールドに、Squidキャッシュの最大許容サイズを入力します。 コンテナのために利用可能なストレージの80%までの使用を推奨します。

    2 GBはデフォルトのプロキシキャッシュサイズ(Squid)を表します。 この値は、ご利用の環境に合わせて調整する必要があります。

  6. `SSL certificate`の選択リストで、SUSE Multi-Linux Managerプロキシ用に新しいサーバ証明書を生成するか、既存のものを使用するかを選択します。 生成された証明書は、SUSE Multi-Linux Manager組み込み(自己署名)証明書と見なすことができます。

    選択に応じて、新しい証明書を生成するための署名CA証明書へのパス、またはプロキシ証明書として使用される既存の証明書とそのキーへのパスのいずれかを指定します。

    サーバによって生成されたCA証明書は、`/var/lib/containers/storage/volumes/root/_data/ssl-build`ディレクトリに格納されます。

    既存の証明書またはカスタム証明書、および企業証明書と中間証明書の概念の詳細については、SSL証明書のインポートを参照してください。

  7. 生成をクリックして、SUSE Multi-Linux Managerサーバに新しいプロキシFQDNを登録し、コンテナホストの詳細情報を含む設定アーカイブ(config.tar.gz)を生成します。

  8. しばらくすると、ダウンロードするファイルが表示されます。 このファイルをローカルに保存します。

1.2. `spacecmd`と自己署名証明書を使用したプロキシ設定の生成

`spacecmd`を使用してプロキシ設定を生成できます。

プロシージャ:spacecmdと自己署名証明書を使用してプロキシ設定を生成する
  1. SSHでコンテナホストに接続します。

  2. 次のコマンドを実行してサーバとプロキシFQDNを置き換えます。

    mgrctl exec -ti 'spacecmd proxy_container_config_generate_cert -- dev-pxy.example.com dev-srv.example.com 2048 email@example.com -o /tmp/config.tar.gz'
  3. 生成された設定をサーバコンテナからコピーします。

    mgrctl cp server:/tmp/config.tar.gz .

1.3. `spacecmd`とカスタム証明書を使用したプロキシ設定の生成

デフォルトの自己署名証明書ではなくカスタム証明書に対して`spacecmd`を使用して、プロキシ設定を生成できます。

プロシージャ:spacecmdとカスタム証明書を使用してプロキシ設定を生成する
  1. サーバコンテナホストにSSHで接続します。

  2. 次のコマンドを実行してサーバとプロキシFQDNを置き換えます。

    for f in ca.crt proxy.crt proxy.key; do
      mgrctl cp $f server:/tmp/$f
    done
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  3. セットアップで中間CAを使用している場合は、それもコピーし、`-i`オプション付きでコマンドに追加します(必要に応じて複数回指定できます):

    mgrctl cp intermediateCA.pem server:/tmp/intermediateCA.pem
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 -i /tmp/intermediateCA.pem pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  4. 生成された設定をサーバコンテナからコピーします。

    mgrctl cp server:/tmp/config.tar.gz .

2. プロキシSUSE Multi-Linux Manager設定を転送します

`spacecmd`コマンドおよびWeb UIの方法の両方で、設定アーカイブが作成されます。 このアーカイブはコンテナホストで利用可能にする必要があります。 この生成されたアーカイブをコンテナホストに転送します。

3. プロキシSUSE Multi-Linux Managerコンテナを開始します

`mgrpxy`コマンドを使用してコンテナを起動できます。

プロシージャ:プロキシSUSE Multi-Linux Managerコンテナを開始します
  1. コマンドを実行します。

    mgrpxy start uyuni-proxy-pod
  2. 次のコマンドを呼び出して、すべてのコンテナが期待どおりに起動したかどうかを確認します。

    podman ps

5つのSUSE Multi-Linux Managerプロキシコンテナが存在し、`proxy-pod`コンテナポッドの一部である必要があります。

  • proxy-salt-broker

  • proxy-httpd

  • proxy-tftpd

  • proxy-squid

  • proxy-ssh