Terraform Providerプラグe.c. e.c.ンでArtifactoryを量産

エンタープライズDevOpsの管理には大規模なチームが必要であり,バイナリリポジトリ管理にも大規模なチームが必要になることがあります。チ,ムメンバ,全員が同じ方向へ迅速に進む必要があります。

成長し続ける開発者組織は高可用性とマルチサイト・リポジトリ・レプリケーションのために,複数ノード上にArtifactoryのインスタンスを複数構築して利用しています。これらを一度に同じリポジトリ,ユザ,権限のセットで効果的か正確に設定することは困難です。

Artifactory Providerプラグaapl .ンfor Terraformでインフラストラクチャ管理ツールを使用して,Artifactoryインスタンスを構成することができます。。

Terraformは安全か再現性の高い方法でンフラストラクチャの構築,変更,管理を可能にするHashiCorpが提供する基础设施代码ルです。HashiCorp配置语言(HCL)と呼ばれる設定言語を使用し,オペレータやインフラストラクチャチームは人が読める自動化されたデプロイメントを通して環境の管理ができます。

Artifactory提供者起程拓殖はHCLを拡張してArtifactoryインスタンスに対してコマンドが実行できる無償のプラグインです。インフラストラクチャ管理者は起程拓殖スクリプトを介してArtifactoryリポジトリ,パーミッションなどを設定することができます。

一度,Artifactoryの設定が自動化できれば,Artifactoryの数百のインスタンスに対して,それらの設定を簡単に迅速かつ確実に複製することができます。

Artifactory Terraform Provider

Artifactory Providerの利用

以下のスニペットを.tfファaapl . exeルに追加し,Terraformスクリプトでプラグaapl . exeンを有効にします。required_providersはTerraformレジストリからプラグンを自動的にロドします。

起程拓殖{required_providers {artifactory ={源= " jfrog / artifactory " version = " 2.2.4}}}变量“artifactory_url”={描述“artifactory部署”的基URL类型=字符串}变量“artifactory_username”={描述“artifactory管理员用户名”类型= string}变量“artifactory_password”={描述“artifactory管理员的密码”类型=字符串}提供者“artifactory”{#配置选项URL = " $ {var。Artifactory_url}" username = "${var. xml "Artifactory_username}" password = "${var. sh "artifactory_password} "}

セキュリティのベストプラクティスとして,絶対にシークレット(Artifactoryのユーザー名やパスワードなど)を平文で起程拓殖ファイルに含めないことです。上記の例ではシクレットとArtifactoryデプロメントのベスURLを格納するためにTerraform環境変数を使用しています。他の方法にいては管理Terraform秘密的指南を参照してください。

この例ではベシック認証を使用してArtifactoryにアクセスする方法を示しています。必要に応じて,access_tokenまたはapi_keyを利用して認証することもできます。

Artifactoryリポジトリの設定

Artifactory Terraform Providerを使用してロ,カルリポジトリを設定する場合はterrraformスクリプトに资源を追加する必要があります:

#创建新的存储库资源"artifactory_local_repository" "pypi-libs" {key = "terraform-pypi-libs" package_type = "pypi" repo_layout_ref = "simple-default" description = "一个用于python包的pypi存储库"}

上記の例ではシンプルなデフォルトのリポジトリレ@ @アウトを使用してterraform-pypi-libsという名前の新しいPyPiロ,カルリポジトリを作成しています。

また,他のArtifactory Providerの资源タ编码器プを使用して,リモ,トリポジトリバ,チャルリポジトリを設定することもできます。

Artifactoryユ,ザ,グル,プ,パ,ミッションの設定

起程拓殖スクリプトに资源を追加し,独自のパーミッションでArtifactoryリポジトリにアクセスできるユーザーとグループを設定できます。

例えばフロントエンド開発チーム用に作成したリポジトリにアクセスできるユーザーのセットのスクリプトを作成できます。

#为团队资源"artifactory_group" "fe-group" {name = "fe-dev" description = "前端开发团队" admin_privileges = false} #为团队资源"artifactory_user" "fe-user-lead" {name = "aliyahm" email = "aliyahm@mycompany.com" groups = [" logging -in-users", "readers", "fe-dev"]创建新的Artifactory用户password = ${var。Artifactory_default_pw}} resource "artifactory_user" "fe-user-dev1" {name = " sanjair " email = "sanjayr@mycompany.com" groups = ["logged-in-users", "readers", " fe-dev "] password = ${var. shArtifactory_default_pw}} resource "artifactory_user" "fe-user-dev2" {name = " erericb " email = "ericb@mycompany.com" groups = ["logged-in-users", "readers", " fe-dev "] password = ${var. txt]创建一个新的Artifactory权限目标,名为fe-perm资源"artifactory_permission_target" "fe-perm" {name = "fe-perm" repo {incles_pattern = ["foo/**"] excludes_pattern = ["bar/**"] repositories = ["terraform-pypi-libs"] actions {users {name = "markz" permissions = ["read", "write"]} groups {name = " fe-dev " permissions = ["read", "write"]}}}}

追加の资源オプション

リポジトリと認証情報の管理に加えて,Artifactory起程拓殖提供者は以下をサポートしています:

レプリケ,ションの設定

提供者を介して,Artifactoryリポジトリのレプリケーションを作成し,管理することができます。マルチサ▪▪トレプリケ▪▪ションと単一Artifactoryレプリケ,ションが利用できます。

証明書

Artifactory証明書资源はリモートリポジトリに対するクライアント認証のためのArtifactory証明書を作成して管理するために使用できます。

デ,タソ,ス

デ,タソ,スはTerraform設定を他の場所で使用するためのデ,タの取得を可能にします。Artifactoryリポジトリファ@ @ルのデ,タソ,スとArtifactoryリポジトリに格納されたファルのメタデタを利用できるようにします。

Terraformの実行

Terraformスクリプトの作成後,Terraformで実行します。

ベ,シック認証を使用する場合は環境変数にクレデンシャルを設定する必要があります:

$ export TF_VAR_artifactory_url=https://artifactory.mycompany.com/artifactory $ export TF_VAR_artifactory_username= $ export TF_VAR_artifactory_password=

その後,設定ファTerraform initコマンドを実行します:

$ terraform init

設定後、Terraform应用コマンドでArtifactoryを設定することができます。

$ terraform apply

詳しく知る

Artifactory Providerを使用することでterrraform State管理などのすべての機能に準拠して,バイナリリポジトリ管理を自動化されたインフラストラクチャ構成に含めることができます。

詳細にいては,Artifactory Providerのドキュメントを参照してください。

JFrog / Hashicorp研讨会では両社のエキスパートがチームのアーティファクト・エクスペリエンスの向上を目的としたベストプラクティスを紹介します。

HashiCorpとJFrogを利用すればアプリケーション・インフラストラクチャをエンドツーエンドで自動化することができます。