Artifactoryの5つの特別なリポジトリについて

アーティファクトリポジトリとしてJFrog Artifactoryで管理されているさまざまなタイプのバイナリリポジトリの中に、あまり知られていない非常に有用な5つのリポジトリがあります。他のリポジトリと同様に、これらもArtifactoryでバイナリを格納するメリットがありますが、使用方法が少し異なります。どのように使用するのか見てみましょう。

1. 汎用リポジトリ

このタイプのリポジトリには特別な形式はなく、あらゆる形式のパッケージをアップロードできます。汎用リポジトリは、どのパッケージ形式にも属さないためパッケージインデックスは管理しません。サポートされていないパッケージ形式、インストーラやナビゲーションファイル、オーディオファイルなどを格納したい場合に便利です。

たとえば、Homebrewのアーティファクトをプロキシ処理してキャッシュする汎用リモートリポジトリを作成できます。URLにhttps://homebrew.bintray.com/を指定し、Homebrewリポジトリを設定するだけです。

Generic Homebrew

デフォルトのHomebrewソースリポジトリをバイパスするには、以下のコマンドで環境変数HOMEBREW_BOTTLE_DOMAINを追加してください。

export HOMEBREW_BOTTLE_DOMAIN=http://ART_URL:8081/artifactory/homebrew/

その後、任意のパッケージ名でinstallコマンドを実行します。

brew install wget

HomebrewはArtifactoryを経由してインストールし、インストールするすべてのアーティファクトをキャッシュします。

2. Build Infoリポジトリ

デフォルトのartifactory-build-infoリポジトリ はArtifactoryのバージョン6.6で導入され、「build-info」ファイルをバイナリ・ラージ・オブジェクトとしてArtifactoryデータベースに格納するための新しいメカニズムになりました。このartifactory-build-infoリポジトリには、Artifactory JenkinsプラグインJFrog CLIBuild Upload REST APIArtifactory UIを直接経由して、さまざまなCIサーバープラグインでArtifactoryにアップロードされたすべてのビルド情報ファイルが格納されます。ビルド情報はREST APIBuildsページから入手できます。

この新しいリポジトリはbuild-infoファイルへのアクセスを定義する新しいユーザやグループのパーミッションセットを導入しました。build-infoリポジトリ内のJSONパスを使用してリポジトリの権限を管理できます。「Create or Replace Permission Target」REST APIを使用してパーミッションを自動化することができます。build-infoパーミッションの新しいセクションを持つV2 JSONを使用するようになりました。

たとえば、次のcURLとbuild-info-permission.jsonは、test-mavenというビルドに対してjava-developersという新しいパーミッションを定義します。

cURLコマンド

curl -uadmin:password -XPUT "http://localhost:8081/artifactory/api/v2/security/permissions/java-developers"  -H "Content-type: application/json"  -T build-info-permission.json

build-info-permission.json

{
  "name": "java-developers",
  "repo": {
      "include-patterns": ["**"] (default),
      "exclude-patterns": [""] (default),
      "repositories": ["generic-local"],
      "actions": {
          "users" : {
            "test1": ["read","write","manage"],
            "test2" : ["write","annotate", "read"]
          },
          "groups" : {
            "group1" : ["manage","read","annotate"],
            "readers" : ["read"]
          }
    }
  },
"build": {
      "include-patterns": ["test-maven/**"] (default),
      "exclude-patterns": [""] (default),
      "repositories": ["artifactory-build-info"] (default, can't be changed),
      "actions": {
          "users" : {
            "test1": ["read","manage"],
            "test2" : ["write"]
          },
          "groups" : {
            "group1" : ["manage","read","write","annotate","delete"],
            "readers" : ["read"]
          }
    }
  }
}

注: Artifactoryをバージョン6.6以上にアップグレードすると、マイグレーション処理としてすべてのbuild-infoファイルをデータベースから新しいartifactory-build-infoリポジトリに移動します。$ARTIFACTORY_HOME/etcにあるartifactory.system.propertiesファイルにシステムプロパティを追加してコントロールします。

その他の機能強化は次のとおりです:

  • 「build-info」JSONファイルへのアクセスとBuildsモジュールの全体的なパフォーマンスの向上。
  • アーティファクトのリポジトリ格納時に、他のインスタンスへのbuild-infoレプリケーション(REST APIを使用した場合のみ利用できます。UI経由のレプリケーション設定はバージョンアップで対応する予定です)。

3. リリースバンドルリポジトリ

このリリースバンドルリポジトリは、Enterprise+のディストリビューションフローの一環としてアーティファクトを保護します。作成・署名されたアーティファクトは自動的にコピーされ、内容の編集・削除ができない別のリポジトリに保存されます。これにより、ターゲットインスタンス間のディストリビューションの一貫性が保証されます。オリジナルのアーティファクトがリポジトリから削除されても、ディストリビューション可能なリリースバンドルリポジトリに残ります。これらのリリースバンドルはJFrog Distributionで作成・管理され、通常はソースのArtifactoryインスタンスからArtifactory Edgeノードに配布されます。

*これはEnterprise+でArtifactory 6.5とDistribution 1.3の両方にアップグレードした場合に利用可能です。

4. ディストリビューションリポジトリ

ディストリビューションリポジトリは、ArtifactoryからBintrayにアーティファクトやビルドを顧客やエンドユーザーに配布するために迅速で簡単な方法を提供します。汎用リポジトリと同様に、あらゆるパッケージフォーマットを管理できます。ルールを使用して、ファイルをBintrayに自動的に配布する方法を定義できます。

たとえば、以下はArtifactoryからBintrayへのアーティファクトのディストリビューションを示しています。

もう1つの例は、Artifactory UIからBintrayへビルドを配布しています。

JFrog Distribution Build

5. サポートバンドルリポジトリ

Artifactoryバージョン6.8で導入されたsupport-bundles-repositoryには、サポートバンドルの生成時に作成され、JFrogサポートによる顧客の問題の分析とデバッグに使用されるすべてのシステムログファイルが含まれています。UIREST APIを使用して新しいサポートバンドルを作成すると、サポートバンドルは自動的にsupport-bundles-repositoryに保存されます。その後、UIやREST API(List Support BundlesGet Support BundleDelete Support Bundle)から簡単にダウンロードできます。

JFrog Support Bundle

以上、こちらで説明した5つのリポジトリをぜひお試しください。