使用Terraform Provider插件复制Artifactory配置

管理企业DevOps需要一个大型团队,也可能需要一个大型二进制存储库管理团队。让所有的团队成员步调一致非常重要,而且要快。

一个不断增长的开发人员组织将拥有许多Artifactory实例来帮助他们扩展,在多个节点上实现高可用性和多站点存储库复制。使用相同的存储库、用户和权限集精确地配置它们,不能一次有效地完成一个。

现在,用Terraform的Artifactory Provider插件,您可以使用基础设施管理工具来配置整个Artifactory实例集。从安装的第一天开始,您就可以通过自动化始终如一地复制Artifactory服务器配置。

Terraform是作为代码工具的基础设施HashiCorp这样就可以以一种安全、可重复的方式构建、更改和管理基础设施。使用一种名为HashiCorp配置语言(HCL)的配置语言,操作人员和基础设施团队可以通过人类可读的自动化部署来管理环境。

Terraform的Artifactory Provider是一个免费插件,它扩展了HCL,从而能够命令一个Artifactory实例。它使基础设施管理人员能够通过Terraform脚本配置Artifactory存储库、权限等。

一旦能够自动配置Artifactory,就可以快速轻松地在几个或几百个Artifactory实例之间可靠地复制这些配置。

Artifactory Terraform Provider

使用Artifactory Provider

您必须在Terraform脚本中启用该插件,方法是将以下代码片段添加到您的.tf文件。的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} "}

注意,为了最佳的安全实践,您永远不应该在纯文本Terraform文件中包含秘密(例如Artifactory用户名和密码)。在上面的例子中,我们依赖于地形环境变量来包含我们的秘密以及我们Artifactory部署的基本URL。你可以学习其他的方法管理Terraform秘密的指南

该示例展示了如何使用基本身份验证访问Artifactory。如果您愿意,您可以通过access_tokenapi_key

配置Artifactory存储库

配置本地存储库使用Artifactory Terraform提供程序,您将需要添加一个资源节到您的Terraform脚本:

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

在上面的示例中,我们创建了一个新的PyPi本地存储库terraform-pypi-libs使用简单的默认存储库布局设置。

你也可以配置远程存储库而且虚拟存储库使用其他Artifactory Provider资源类型。

配置Artifactory用户、组和权限

您可以将资源添加到您的T2022世界杯阿根廷预选赛赛程erraform脚本中,以配置能够以特定权限访问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 Terraform Provider还支持以下功能:

复制配置

您可以通过提供程序创建和管理Artifactory存储库复制。提供的设施包括多站点复制配置,或用于单个Artifactory复制。

证书

一个Artifactory证书资源可用于创建和管理针对远程存储库的客户端身份验证的Artifactory证书。

数据源

数据源允许获取或计算数据,以便在Terraform配置中的其他地方使用。Artifactory Provider提供了可用的数据源Artifactory存储库文件存储在Artifactory存储库中的文件元数据

运行起程拓殖

一旦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

一旦正确设置,您就可以应用起程拓殖配置Artifactory:

$ terraform apply

了解更多

使用Artifactory Provider,您可以将二进制存储库管理包括在自动化基础结构配置中,并与所有特性保持一致,例如地形状态管理

要了解更多,您可以浏览Artifactory Provider文档

你也可以观看JFrog/Hashicorp的网络研讨会,来自两家公司的专家将指导您通过最佳实践来帮助增强您团队的工件体验。

HashiCorp和JFrog可以帮助您实现端到端的应用程序基础设施自动化。