SUSE Multi-Linux Managerプロキシデプロイメント

このガイドは、SUSE Multi-Linux Manager 5.1プロキシコンテナをSL Micro 6.1またはSUSE Linux Enterprise Server 15 SP7上にデプロイする手順を概説しています。 このガイドは、すでにSUSE Multi-Linux Manager 5.1サーバを正常にデプロイしていることを前提としています。

SL Microは、現時点では通常のミニオン(`default`接続方法)としてのみサポートされています。 私たちは、Salt SSHクライアント(`salt-ssh`接続方法)として管理することにも取り組んでいます。

既存のクライアントをプロキシに変換することが可能です。 詳細については、クライアントをMLMプロキシに変換するを参照してください。

新しいプロキシを正常にデプロイするには、手順に従ってください:

プロシージャ:プロキシのデプロイ
  1. ハードウェア要件を確認します。

  2. サーバ上のSL Micro 6.1またはSUSE Linux Enterprise Server 15 SP7親チャンネルとプロキシ拡張機能の子チャンネルを同期します。

  3. ベアメタルマシンにSL MicroまたはSUSE Linux Enterprise Serverをインストールします。

  4. プロキシ拡張機能を使用してSaltのアクティベーションキーを作成します。

  5. `default`接続方法を使用して、プロキシをクライアントとして起動します。

  6. プロキシ設定を生成します。

  7. サーバからプロキシにプロキシ設定を転送します。

  8. {webui}を使用したパッケージのインストール

  9. プロキシ設定を使用して、クライアントをSUSE Multi-Linux Managerにプロキシとして登録します。

プロキシコンテナホストでサポートされるオペレーティングシステム

コンテナホストでサポートされるオペレーティングシステムはSL Micro 6.1およびSUSE Linux Enterprise Server 15 SP7です。

コンテナホスト

コンテナホストは、Podmanのようなコンテナエンジンを備えたサーバで、コンテナを管理およびデプロイすることができます。 これらのコンテナは、アプリケーションとその必須部分(ライブラリなど)を保持しますが、完全なオペレーティングシステムは含まれておらず、軽量です。 このセットアップにより、アプリケーションは異なる環境で同じように実行されます。 コンテナホストは、これらのコンテナに必要なリソース(CPU、メモリ、ストレージなど)を提供します。

1. プロキシのハードウェア要件

SUSE Multi-Linux Managerプロキシのデプロイに関するハードウェア要件の詳細については、installation-and-upgrade:hardware-requirements.adoc#proxy-hardware-requirementsを参照してください。

2. 親とプロキシ拡張機能の子チャンネルの同期

このセクションでは、すでにサーバーのWeb UIのAdmin  セットアップウィザード  組織の資格情報に組織の資格情報を入力していることを前提としています。 製品はAdmin  セットアップウィザード  製品ページにリストされています。 このチャンネルはサーバー上で完全に同期されている必要があり、子チャンネル`Proxy`が拡張機能として選択されている必要があります。

プロシージャ:親チャンネルとプロキシ拡張機能の同期
  1. SUSE Multi-Linux Manager Web UIでAdmin  製品を選択します。

  2. 製品ページからフィルタフィールドにSL MicroまたはSUSE Linux Enterprise Serverを入力します。

  3. 続いて、ドロップダウンを使用して必要なアーキテクチャを選択します。 この例ではx86-64です。

  4. Product Description`フィールドでSL Micro 6.1またはSUSE Linux Enterprise Server 15 SP7チェックボックスを選択し、ドロップダウンを使用してSUSE Multi-Linux Manager Proxy Extension 5.1 x86_64`拡張機能を選択します。

  5. 製品の追加ボタンをクリックします。

  6. 同期が完了するまで待ちます。

3. SUSE Multi-Linux Managerプロキシホストを準備します。

以下のサブセクションで、SLE MicroまたはSUSE Linux Enterprise Serverを使用してプロキシホストを準備します。

3.1. SL Micro 6.1ホストを準備します。

3.1.1. インストールメディアのダウンロード

プロシージャ:インストールメディアのダウンロード
  1. https://www.suse.com/download/sle-micro/,にあるSL Micro 6.1インストールメディアを見つけて、適切なメディアファイルをダウンロードします。

  2. インストール用にダウンロードした`.iso`イメージを含むDVDまたはUSB フラッシュ ドライブを準備します。

3.1.2. SL Micro 6.1をインストールします。

マシン(仮想または物理)の準備に関する詳細は、SL Microデプロイメントガイドを参照してください。

プロシージャ:SL Micro 6.1をインストール中です。
  1. SLE Micro 6.1のインストールイメージを含むDVDまたはUSBフラッシュ ドライブ(USBディスクまたはキー)を挿入します。

  2. システムをブートまたは再起動します。

  3. 矢印キーを使用して`Installation`を選択します。

  4. キーボードと言語を調整します。

  5. `checkbox`をクリックして、ライセンス契約を受け入れます。

  6. `Next`をクリックして続行します。

  7. プロキシの登録SL Micro 6.1エンタイトルメントはSUSE Multi-Linux Managerエンタイトルメント内に含まれているため、別途登録コードは必要ありません。

  8. 継続するには次へをクリックしてください。

  9. `NTP Configuration`ページで、Nextをクリックします。

  10. `Authentication for the System`ページで、ルートユーザのパスワードを入力します。 次へをクリックします。

  11. `Installation Settings`ページで、Installをクリックします。

これでSL Micro 6.1とSUSE Multi-Linux Manager 5.1の拡張機能のインストールが完了しました。

3.1.3. システムの更新

プロシージャ:システムの更新
  1. *ルート*としてログインします。

  2. transactional-updateを実行します。

    transactional-update
  3. 再起動します。

SL Microはデフォルトで自動的に更新されるように設計されており、更新を適用した後に再起動します。 しかし、この動作はSUSE Multi-Linux Manager環境では望ましくありません。 サーバーで自動更新を防ぐために、SUSE Multi-Linux Managerは起動プロセス中にトランザクション更新タイマーを無効にします。

SL Microのデフォルトの動作を使用したい場合は、次のコマンドを実行してタイマーを有効にします。

systemctl enable --now transactional-update.timer

デプロイを続行するには、カスタム永続ストレージの設定を参照してください。

3.2. SUSE Linux Enterprise Server 15 SP7 ホストの準備

また、SUSE Multi-Linux ManagerをSUSE Linux Enterprise Server 15 SP7にデプロイすることもできます。

次のプロシージャでは、インストールプロセスの主なステップについて説明します。

3.2.1. SUSE Multi-Linux Manager拡張機能をSUSE Linux Enterprise Serverにインストールします。

プロシージャ:SUSE Multi-Linux Manager拡張機能をSUSE Linux Enterprise Serverにインストールしています。
  1. SUSE Linux Enterprise Server 15 SP7 `.iso`を https://www.suse.com/download/sles/.で見つけてダウンロードします。

  2. ホストオペレーティングシステム(SUSE Linux Enterprise Server 15 SP7)と拡張機能の両方の登録コードがあることを確認します。

  3. SUSE Linux Enterprise Server 15 SP7のインストールを開始します。

    1. `Language, keyboard and product selection`で、インストールする製品を選択します。

    2. `License agreement`で、契約書を読み、`I Agree to the License Terms`にチェックを入れます。

  4. プロキシの登録

  5. `Next`をクリックして続行します。

    SUSE Linux Enterprise Server 15 SP7には、有効なSUSE Linux Enterprise Serverサブスクリプションがサーバーに設定されている必要がありますのでご注意ください。

  6. 画面`Extensions and Modules Selection`で、以下を確認します。

    • ベースシステムモジュール

    • Containersモジュール

  7. 次へをクリックして続行します。

  8. インストールを完了します。

  9. インストールが完了したら、rootとして新しくインストールしたサーバにログインします。

  10. システムを更新します(オプション。インストール時にシステムが更新をダウンロードするように設定されていない場合)。

    zypper up
  11. 再起動します。

デプロイを続行するには、カスタム永続ストレージの設定を参照してください。

4. カスタム永続ストレージの設定

永続ストレージの設定は任意ですが、コンテナのディスクが満杯になる問題を避ける唯一の方法です。 ご使用のインフラストラクチャにカスタム永続ストレージが必要な場合は、`mgr-storage-proxy`ツールを使用します。

  • 詳細については、`mgr-storage-proxy --help`を参照してください。 このツールは、コンテナストレージとSquidキャッシュボリュームの作成を簡素化します。

このコマンドは次のように使用します。

mgr-storage-proxy <storage-disk-device>

例:

mgr-storage-proxy /dev/nvme1n1

このコマンドは、`/var/lib/containers/storage/volumes`に永続ストレージボリュームを作成します。

詳細については、以下を参照してください。

5. プロキシのアクティベーションキーの作成

プロシージャ:アクティベーションキーの作成
  1. システム  アクティベーションキーに移動し、キーを作成をクリックします。

  2. 親チャネルとしてSL Micro 6.1またはSUSE Linux Enterprise Server 15 SP7を使用して、プロキシホストのアクティベーションキーを作成します。 このキーには、推奨されるすべてのチャンネルと、拡張機能の子チャンネルとしてのプロキシを含める必要があります。

  3. 続行して、プロキシホストを`default`クライアントとしてブートストラップします。

プロキシは元のベンダーチャネルのみに割り当てられていることを確認してください。

クローンチャネルの割り当ては現時点ではサポートされていません。

6. クライアントとしてのプロキシホストのブートストラップ

プロシージャ:プロキシホストの起動
  1. システム  起動を選択します。

  2. プロキシホストのフィールドに入力します。

  3. ドロップダウンから、前のステップで作成したアクティベーションキーを選択します。

  4. 起動をクリックします。

  5. 起動処理が正常に完了するまで待ちます。 Saltメニューを確認し、Saltキーがリストに表示され、受理されていることを確認します。

  6. オペレーティングシステムがSL Microの場合はプロキシホストを再起動します。

  7. すべてのイベントが終了したら、システムの一覧からホストを選択し、SL Microの場合は2回目の再起動をトリガーし、オンボーディングを完了します。

プロシージャ:プロキシホストの更新
  1. システムの一覧からホストを選択し、すべてのパッチを適用してホストを更新します。

  2. オペレーティングシステムがSL Microの場合はプロキシホストを再起動します。

7. プロキシ設定の生成

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`をプロキシ証明書のキーとして

7.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. しばらくすると、ダウンロードするファイルが表示されます。 このファイルをローカルに保存します。

7.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 .

7.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 .

8. プロキシ設定の転送

Web UIは設定アーカイブを生成します。 このアーカイブはプロキシコンテナホストで利用できるようにする必要があります。

プロシージャ:プロキシ設定のコピー
  1. まだ実行していない場合は、前のステップで生成された設定アーカイブ (config.tar.gz) をコンテナからサーバホストにコピーします。

    mgrctl cp server:/root/config.tar.gz .
  2. まだ実行していない場合は、サーバホストからプロキシホストにファイルをコピーします。

    scp config.tar.gz <proxy-FQDN>:/root

9. [package]``podman``をインストールおよび有効にする

プロキシを使用する前に、いくつかのパッケージがホスト上に存在し、`podman`が実行されている必要があります。

プロシージャ:前提条件の準備
  1. プロキシホストで、次のコマンドを使用してプロキシをインストールします。

    • podman

    • mgrpxy-bash-completion

    • suse-multi-linux-manager-5.1-x86_64-proxy-httpd-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-salt-broker-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-squid-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-ssh-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-tftpd-image

  2. システムを再起動するか、次のコマンドを実行してPodmanサービスを起動します。

    systemctl enable --now podman.service
  3. プロキシホストで、次のコマンドを使用してプロキシをインストールします。

    mgrpxy install podman config.tar.gz

10. SUSE Multi-Linux Managerプロキシを起動します。

コンテナは、`mgrpxy`コマンドで起動できるようになりました。

プロシージャ:プロキシの起動とステータスの確認
  1. 次のコマンドを呼び出してプロキシを起動します。

    mgrpxy start
  2. 次のコマンドを呼び出してコンテナのステータスを確認します。

    mgrpxy status

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

    • proxy-salt-broker

    • proxy-httpd

    • proxy-tftpd

    • proxy-squid

    • proxy-ssh

11. サービスにカスタムコンテナイメージを使用する

デフォルトでは、SUSE Multi-Linux Managerプロキシスイートは、各サービスに対して同じイメージバージョンとレジストリパスを使用するように設定されています。 ただし、特定のサービスに対してデフォルト値を上書きすることは、-tag`および-image`で終わるインストールパラメータを使用することで可能です。

例:

mgrpxy install podman --httpd-tag 0.1.0 --httpd-image registry.opensuse.org/uyuni/proxy-httpd /path/to/config.tar.gz

これはhttpdサービスの設定ファイルを調整します。ここで`registry.opensuse.org/uyuni/proxy-httpds`は使用するイメージ、`0.1.0`はバージョンタグであり、その後サービスを再起動します。

値をデフォルトにリセットするには、これらのパラメータを指定せずにもう一度installコマンドを実行します。

mgrpxy install podman /path/to/config.tar.gz

このコマンドは、すべてのサービスの設定をグローバルデフォルトにリセットして再ロードします。