Creating and using a local repository#
クラスターディレクトリにローカルリポジトリを作成すると、TPAはリポジトリ内のパッケージをクラスターインスタンスで利用できるようにします。これにより、追加のパッケージをクラスターにシップする簡単な方法を提供します。
オプションで、このリポジトリ のみ を使用し、他のすべてを無効にするようにインスタンスを構成するようにTPAに指示することもできます。この場合、rsync、Pythonなどの基本的な依存関係から始めて、展開中に必要な すべての パッケージを提供する必要があります。
ローカルリポジトリを手動で作成するか、TPAにローカルリポジトリを作成してもらうことができます。
注釈
特定の指示は managing clusters in an air-gapped 環境で使用できます。
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/10
を作成します。手動で作成するリポジトリにもこの構造を使用することをお勧めします。
たとえば、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/10` にコピーする場合、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/buster
# 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
で提供したパッケージのみを使用できます。