JFrog Japan Blog

DevOpsを加速する、JFrog日本法人メンバーによるブログです。

JFrog ArtifactoryやXrayといった自社ツールはもちろん、CI/CDやコンテナ技術(DockerやKubernetes)などDevOpsの一般的な内容も扱います。その他、日本でのDevOps事例紹介やお楽しみコンテンツも掲載予定です。 JFrogならではの面白くて役に立つブログを目指しますので、お楽しみに!

Jenkins PipelineでJFrog Artifactoryを使えるよう設定する

お、お久しぶりです…デベロッパーアドボケイトのよこなです。

登壇で使うデモで得た知見を少しずつブログ記事にしていきます。今回はJenkinsからArtifactoryへアーティファクトをプッシュするのに必要な設定です。
なおJenkinsには「フリースタイルジョブ」といってGUIを使って設定できるジョブもありますが、定義をJenkinsfileという設定ファイルでで書ける「Jenkins Pipeline」を使っていきます。
そうすると設定ファイルをSCM(Gitとかですね)で管理できるので設定の管理や再現が比較的楽になるというメリットがありますよ〜。
ところで素朴な疑問…フリースタイルは片仮名、Pipelineはアルファベットで表記することが多い気がします。なぜだろう。

まぁそれはいいとして、やっていくぞ〜

Artifactoryのプラグインをインストールする

まずはJenkinsでArtifactoryを使えるよう設定します。専用のプラグインがあるので簡単!

plugins.jenkins.io

左側のメニューにある「Jenkinsの設定」から「プラグインの管理」を開いて…

f:id:ihcomega:20210415213030p:plain
f:id:ihcomega:20210415214127p:plain

「利用可能」タブでArtifactoryを検索すれば出てくるのでインストールします。

f:id:ihcomega:20210415231753p:plain
※この操作は他とは別環境のまっさらなJenkinsで行ったので、スクショ内のJenkinsのバージョンが異なってUIも違います、すみません(バージョン違いでも大まかには同じです!)

プラグインの反映にはJenkinsの再起動が必要なので、止めて良いタイミング(≒ジョブの実行および実行予定がない時間帯)で忘れずに行ってくださいね。

Artifactoryと接続できるよう設定する

次はJenkinsの設定画面から「システムの設定」を開き、Artifactoryの認証情報を設定していきます。

f:id:ihcomega:20210415214055p:plain

プラグインをインストールしてあると、JFrogの設定エリアが登場します🎉

f:id:ihcomega:20210415232430p:plain

Add Artifactory Server をクリックすると以下のような入力欄が表示されるので、Artifactoryのサーバーを指定してクレデンシャルを入力すれば完了です。

f:id:ihcomega:20210415222623p:plain

Server IDはArtifactoryのサーバーを識別できるよう自分で設定しましょう。この値はJenkinsfile内でも使います。

Jenkins側の設定はこれだけです。

Jenkinsfileの記載

Jenkinsfile内で行えるArtifactoryの操作一覧はJenkinsのプラグインページにあります。ただ、ここで見られるのは取れるパラメーターとその型の情報のみなので、参考情報にしかなりませんね…。 www.jenkins.io

JFrogのwikiの方が詳細な使い方を知るのには便利です。
www.jfrog.com

Javaのパッケージマネージャー「Gradle」を例に用いますが、例えば使用するリモートリポジトリ・ローカルリポジトリを設定する際は以下のように書きます。

// リモートリポジトリ(依存関係の解決先)を指定する
rtGradleResolver(
  id: 'my-resolver', // Server IDと同じようにリポジトリを識別するために設定する
  serverId: 'my-artifactory-server', // 上で設定したServer IDはこのように使う
  repo: 'maven' // バーチャルリポジトリでもOK
)

// ローカルリポジトリ(アーティファクトの保管先)を指定する
rtGradleDeployer(
  id: 'my-deployer', // Server IDと同じようにリポジトリを識別するために設定する
  serverId: 'my-artifactory-server', // これも上で設定したServer ID
  repo: 'local-repo' // バーチャルリポジトリでもOK
)

こんな感じでJenkins越しにArtifactoryをじゃんじゃん使えるようになりました。

参考までに私がデモで使っていたJenkinsfileも貼っておきますが、 「Jenkinsfileどうやって書くの?」というブログ記事もまた書きたいと思います。
github.com

あとさらっと出てきたバーチャルリポジトリって何ぞや?とか。

ということで久々すぎる投稿になってしまいました…2021年からは技術ネタもエモい話も色々出していくので本ブログをよろしくおねがいします😤💦