tpaexec download-packages
=========================

ダウンローダーの目的は、既存の構成からTPAクラスターの完全なインストールを実行するために必要なパッケージを提供することです。これは、インターネットアクセスのない安全なクラスターにパッケージを出荷する場合、またはテストクラスター用にパッケージを繰り返しダウンロードすることを避けたい場合に役立ちます。

ダウンローダーは、必要なパッケージの完全な依存関係ツリーをダウンロードし、結果のパッケージリポジトリには、ターゲットディストリビューションパッケージマネージャーのメタデータファイルが含まれるため、クラスターを構築するためにのみ使用できます。現時点では、パッケージマネージャーAptおよびYUMがサポートされています。

..  Note::
   ダウンロードパッケージ機能を使用するには、TPAホストにDockerをインストールする必要があります。これは、ダウンローダーがターゲットオペレーティングシステムのコンテナを作成することにより動作し、そのシステムのパッケージマネージャーを使用して依存関係を解決し、必要なパッケージをすべてダウンロードするためです。ダウンロードパッケージに必要なDockerセットアップは、 :ref:`Dockerのインストール <Dockerのインストール>` の場合と同じです。

使用法
------

既存のクラスター構成が存在する必要があります。これは、
``tpaexec configure``
コマンドを使用して実現できます。ダウンローダーを使用するために特定のオプションは必要ありません。
:ref:`クラスター構成 <クラスター構成>` を参照

。

download-packagesサブコマンドを実行して、ダウンロードプロセスを開始します。ダウンローダーが使用するOSとOSバージョンを提供します。

.. code:: shell

   tpaexec download-packages cluster-dir --os RedHat --os-version 8

これは、特定のdockerイメージとして表現することもできます。次の例のように、接頭辞がついたtpaイメージのいずれかを使用することを強くお勧めします。

.. code:: shell

   tpaexec download-packages cluster-dir --docker-image tpa/redhat:8

ダウンローダーは、ダウンロードしたファイルをデフォルトで\ ``local-repo``
ディレクトリに配置します。オプション ``--download-dir path``
を使用して、別のディレクトリにダウンロードすることができます。

結果の使用
----------

``local-repo``
ディレクトリの内容には、dockerイメージに含まれるOSに従って、ansibleによって決定された構造が設定されます。たとえば、dockerイメージ\ ``tpa/redhat:8``
には次のものが含まれます。

::

   cluster-dir/
   `-- local-repo
       `-- RedHat
           `-- 8
               |-- *.rpm
               `-- repodata
                   `--  *repodata-files* 

これをクラスターでそのまま使用するか、ターゲット制御ノードにコピーできます。
:ref:`Managing clusters in a disconnected or air-gapped environment <Managing clusters in a disconnected or air-gapped environment>` を参照してください。
:ref:`Creating and using a local repository <Creating and using a local repository>` は、TPAによって自動的に検出および使用されます。

ローカルリポジトリのメタデータを再生成
--------------------------------------

アップグレードの前に、 ``download-packages``
コマンドを\ ``--refresh-repository``
オプションとともに使用して、ローカルリポジトリのメタデータを再生成し、新しいパッケージまたは既存のパッケージの新しいバージョンを確認できます。新しいコンテンツを\ ``local-repo``
ディレクトリに配置し、各\ ``config.yml``
ファイルのパッケージの新しいバージョンを更新した後、次のようにコマンドを実行する必要があります。

.. code:: shell

   tpaexec download-packages cluster-dir --os <OS> --os-version <version> --refresh-repository

``--refresh-repository``
オプションは、新しいDockerコンテナを作成し、リポジトリのメタデータを再生成し、自分自身を削除します。

..  Note::
   上記のコマンドを実行すると、各ノードのローカルリポジトリのキャッシュは自動的に更新されません。これはアップグレードステージで自動的に実行されるか、 `tpaexec cmd` を使用して手動で行う必要があります。

.. ::
   ## 失敗したダウンローダーコンテナのクリーンアップ

ダウンロードプロセス中にエラーが発生した場合、コマンドはデバッグを支援するために実行中のダウンローダーコンテナを残します。たとえば、障害が発生したダウンローダーコンテナにログインして、ログまたはネットワークを検査することができます。ダウンローダーコンテナの名前は、コンテナ名の許可制限64文字を超えない限り、通常$cluster_name-downloaderになります。
``docker ps``
を実行して実行中のコンテナをリストし、クラスター名と一致するコンテナ名を探すことにより、正確な名前を確認できます。ほとんどの場合、
``docker exec -it $cluster_name-downloader /bin/bash``
を実行することにより、実行中のコンテナにログインできます。検査後、
``--tags cleanup`` で\ ``download-packages``
コマンドを実行することにより、残ったコンテナをクリーンアップできます。例

.. code:: shell

   tpaexec download-packages cluster-dir --docker-image tpa/redhat:8 --tags cleanup
