使用Terraform Provider插件复制人工配置

管理企业DevOps需要一个庞大的团队,也可能需要一个庞大的二进制存储库管理团队。让所有团队成员以同样的方式快速前进是至关重要的。
不断发展的开发人员组织将拥有许多Artifactory实例,以帮助他们在多个节点上进行扩展,以获得高可用性和多站点存储库复制。使用相同的存储库、用户和权限集精确地配置它们是不可能一次一个地完成的。
现在,有了Terraform的Artifactory Provider插件,您可以使用基础设施管理工具来配置整个Artifactory实例集。从安装的第一天起,您就可以通过自动化始终如一地复制Artifactory服务器配置。
Terraform是作为代码工具的基础设施HashiCorp这使得以安全、可重复的方式构建、更改和管理基础设施成为可能。使用一种名为HashiCorp配置语言(HCL)的配置语言,运营商和基础设施团队可以通过人类可读的自动化部署来管理环境。
Terraform的Artifactory Provider是一个免费的插件,它扩展了HCL,可以命令Artifactory实例。它使基础设施管理人员能够通过Terraform脚本配置工件存储库、权限等。
一旦能够自动化Artifactory的配置,就可以快速、轻松地跨几个或几百个Artifactory实例可靠地复制这些配置。

使用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. url}Artifactory_username}" password = "${var。artifactory_password} "}
请注意,为了获得最佳安全实践,您不应该在明文Terraform文件中包含秘密(例如Artifactory用户名和密码)。在上面的例子中,我们依赖于地形环境变量以包含我们的秘密以及我们的Artifactory部署的基本URL。您可以在这里了解其他方法为Terraform管理秘密指南.
该示例展示了如何使用基本授权访问Artifactory。如果你愿意,你可以授权access_token或api_key.
配置工件存储库
来配置本地存储库使用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资源类型。
配置人工用户、组和权限
您可以将资源添加到您的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 = [" login -in-users", "readers", "fe-dev"]创建新的Artifactory用户,密码= ${var}。Artifactory_default_pw}} resource "artifactory_user" "fe-user-dev1" {name = "sanjayr" email = "sanjayr@mycompany.com" groups = [" login -in-users", "readers", " fe-dev "] password = ${var. conf "。Artifactory_default_pw}} resource "artifactory_user" "fe-user-dev2" {name = "ericb" email = "ericb@mycompany.com" groups = [" login -in-users", "readers", " fe-dev "] password = ${var. conf . conf "#创建一个新的Artifactory权限目标,名为fe-perm资源"artifactory_permission_target" "fe-perm" {name = "fe-perm" repo {include = ["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复制。
证书
一个人工证书资源可用于创建和管理针对远程存储库的客户端身份验证的人工证书。
数据源
数据源允许获取或计算数据,以便在Terraform配置的其他地方使用。Artifactory Provider为以下对象提供可用的数据源工件存储库文件和存储在Artifactory存储库中的文件元数据.
运行起程拓殖
完成Terraform脚本后,可以使用Terraform运行它。
对于我们使用基本认证的示例,您需要使用您的凭据秘密设置环境变量:
$ export TF_VAR_artifactory_url=https://artifactory.mycompany.com/artifactory $ export TF_VAR_artifactory_username= $ export TF_VAR_artifactory_password= . net
然后你需要运行地形初始化命令部署配置文件并初始化目录。
$ terraform init
一旦正确设置,您就可以应用起程拓殖配置Artifactory:
$ terraform apply
了解更多
使用Artifactory Provider,您可以在您的自动化基础结构配置中包含二进制存储库管理,以符合所有的特性,例如地形状态管理.
要了解更多信息,您可以浏览人工提供程序文档.
你也可以观看JFrog/Hashicorp网络研讨会,在这里,来自两家公司的专家将引导您完成帮助增强团队工件体验的最佳实践。
HashiCorp和JFrog可以使您能够端到端自动化应用程序基础设施。
