Creating and using a local repository#
クラスターディレクトリ内にローカルリポジトリを作成すると、TPAはリポジトリ内のパッケージをクラスターインスタンスで利用できるようにします。これは、追加のパッケージをクラスターにシップする簡単な方法です。
オプションで、このリポジトリ のみを使用するようにインスタンスを構成するようにTPAに指示することもできます。つまり、他のすべてを無効にします。この場合、rsync、Pythonなどの基本的な依存関係から始めて、展開中に必要な すべての*パッケージを提供する必要があります。
ローカルリポジトリを手動で作成するか、TPAにローカルリポジトリを作成してもらうことができます。両方の手順を以下に示します。
注釈
特定の指示は Managing clusters in a disconnected or air-gapped environment 環境で使用できます。
TPAを使用したローカルリポジトリの作成#
TPAには、このようなローカルリポジトリの作成に役立つツールが含まれています。具体的には、
--enable-local-repo スイッチをtpaexec configure
とともに使用して、ローカルリポジトリとして使用する空のディレクトリ構造を作成できます。
tpaexec download-packages
は、その構造に必要なパッケージを設定します。
ディレクトリ構造の作成#
ローカルリポジトリでクラスターを構成するには、次のコマンドを実行します。
tpaexec configure --enable-local-repo …
これにより、クラスター構成が生成され、local-repo
ディレクトリとOS固有のサブディレクトリが作成されます。
ローカルリポジトリのレイアウト については、以下を参照してください。
リポジトリにデータを設定し、メタデータを生成する#
tpaexec download-packages を実行して、クラスターに必要なすべてのパッケージをローカルリポジトリにダウンロードします。結果のリポジトリには、すべてのパッケージの完全な依存関係ツリーが含まれるため、このリポジトリからクラスター全体をインストールできます。リポジトリのメタデータも自動的に作成され、すぐに使用できます。
ローカルリポジトリの手動作成#
ローカルリポジトリのレイアウト#
ローカルリポジトリを手動で作成するには、最初に適切なディレクトリ構造を作成する必要があります。
--enable-local-repo
を使用する場合、TPAは、クラスター用に選択したOSに基づいて、local-repo
ディレクトリとその内にOS固有のサブディレクトリたとえば
local-repo/Debian/12
を作成します。この構造は、手動で作成したリポジトリにも使用することをお勧めします。
たとえば、RedHat 8を実行しているクラスターは次のレイアウトになる場合があります。
local-repo/
`-- RedHat
|-- 8.5 -> 8
`-- 8
`-- repodata
インスタンスごとに、TPAはlocal-repo
の次のサブディレクトリを順番に検索し、最初に見つけたものを使用します。
<distribution>/<version>、例RedHat/8.5<distribution>/<major version>、例RedHat/8<distribution>/<release name>、例Ubuntu/focal<distribution>、例Debianlocal-repoディレクトリ自分自身。
これらのディレクトリが存在しない場合、もちろん、TPAはターゲットインスタンスにローカルリポジトリをセットアップしようとしません。
リポジトリの設定とメタデータの生成#
tpaexec deploy
を実行する前に、以下で詳しく説明する手順を完了する必要があります。
リポジトリにデータを設定するには、含めるパッケージを適切なディレクトリにコピーします。次に、以下で詳しく説明するように、システムに適切なツールを使用してメタデータを生成します。
注釈
制御ノードつまりtpaexecを実行するマシンでメタデータを生成する必要があります。 TPAは、メタデータとパッケージをターゲットインスタンスにコピーします。
注釈
インスタンスが使用するサブディレクトリにメタデータを生成する必要があります。つまり、パッケージを`local-repo/Debian/12` にコピーする場合、local-repo/Debian ではなくそのディレクトリにメタデータを作成する必要があります。
Debian / Ubuntuリポジトリのメタデータ#
Debianベースのディストリビューションの場合、dpkg-dev
パッケージをインストールします。
$ sudo apt-get update && sudo apt-get install -y dpkg-dev
これで、 dpkg-scanpackages を使用してメタデータを生成できます。
$ cd local-repo/Debian/bookworm
# download/copy .deb package files
$ dpkg-scanpackages . | gzip > Packages.gz
RedHat / SLESリポジトリのメタデータ#
最初に、createrepo パッケージをインストールします。
$ sudo yum install -y createrepo
これで、 createrepo を使用してメタデータを生成できます。
$ cd local-repo/RedHat/8
# download/copy .rpm package files
$ createrepo .
TPAがローカルリポジトリを使用する方法#
リポジトリのコピー#
TPAはrsyncを使用して、生成されたメタデータを含むリポジトリーディレクトリの内容をターゲットインスタンス上のディレクトリにコピーします。
rsyncがインスタンスでまだ利用できない場合、TPAはそれをインストールできますつまり
apt-get install rsync またはyum install rsync 。ただし、
use_local_repo_only
を設定している場合、rsyncパッケージはローカルリポジトリに含まれる必要があります。必要に応じて、TPAはscpを使用してrsyncパッケージのみをコピーし、残りをコピーする前にインストールします。
リポジトリー構成#
ローカルリポジトリのコンテンツをターゲットインスタンスにコピーした後、TPAは宛先ディレクトリをローカルつまり、URLベースではなくパスベースのリポジトリとして構成します。
たとえば、リポジトリーディレクトリにexample.deb
を提供する場合、他のリポジトリーのパッケージと同様に、apt-get install example
を実行するだけでインストールできます。
パッケージのインストール#
TPAは、提供されたコンテンツでリポジトリを構成しますが、同じパッケージが別のリポジトリから利用可能な場合、どれをインストールするかはパッケージマネージャーの判断にあります特定のバージョンを指定しない限り、通常は最新です。
ただし、 use_local_repo_only: yes
を設定すると、TPAは他のすべてのパッケージリポジトリを無効にするため、インスタンスはlocal-repo
で提供したパッケージのみを使用できます。