标签:pytho href form packages password 安全 工程 targe 通过
前言Terraform是HashiCorp提供的基础架构即代码工具,可用于以安全,可重复的方式构建,更改和管理基础架构。 使用称为HashiCorp配置语言(HCL)的配置语言,操作员和基础架构团队可以通过易于理解的自动化部署来管理环境。
Terraform的Artifactory Provider是一个免费插件,该插件扩展了HCL以能够构建Artifactory实例。它使基础架构管理员可以通过Terraform脚本配置Artifactory信息库,权限等。
一旦能够自动完成Artifactory的配置,便可以在多个Artifactory实例或数百个Artifactory实例中可靠地复制这些配置。
通过Terraform Provider加载Artifacotry配置
可以通过将以下代码段添加到.tf文件中来在Terraform脚本中启用该插件。 required_providers声明将自动从Terraform注册表中加载插件。
terraform {
required_providers {
artifactory = {
source = "jfrog/artifactory"
version = "2.2.4"
}
}
}
variable "artifactory_url" {
description = "The base URL of the Artifactory deployment"
type = string
}
variable "artifactory_username" {
description = "The username for the Artifactory administrator"
type = string
}
variable "artifactory_password" {
description = "The password for the Artifactory administrator"
type = string
}
provider "artifactory" {
url = "${var.artifactory_url}"
username = "${var.artifactory_username}"
password = "${var.artifactory_password}"
}
需要注意以上配置文件通过明文存储Artifacotry的登录信息,因此对provider的配置文件建议通过权限设定用户读取的范围。另外也可以参考以下文章官方处理terraform中secrt信息的方法(https://blog.gruntwork.io/a-comprehensive-guide-to-managing-secrets-in-your-terraform-code-1d586955ace1#4df5)
并且Artifactory除了使用用户名/密码方式外,还可以使用API key或者access token方式进行访问。
通过resource方法创建Repositories
在使用terraform的artifactory 插件后可以resource字段定义一个Artifacotry的仓库,这个也是terraform标准语法对象,完全没有改变terraform玩家的使用习惯
resource "artifactory_local_repository" "pypi-libs" {
key = "terraform-pypi-libs"
package_type = "pypi"
repo_layout_ref = "simple-default"
description = "A pypi repository for python packages"
}
这里我们创建了一个名为terraform-pypi-libs的python仓库,同样地这个aritfactory插件同时还能通过resource方法创建remote合virtual类型的仓库。
通过resource配置Artifactory Users, Groups, and Permissions
同样可以将resource添加到Terraform脚本中,以配置可以使用特定权限访问Artifactory存储库的用户和组。例如,您可以编写脚本来为可以访问您创建的存储库的前端开发人员团队创建一组用户。
resource "artifactory_group" "fe-group" {
name = "fe-dev"
description = "Front End Development Team"
admin_privileges = false
}
resource "artifactory_user" "fe-user-lead" {
name = "aliyahm"
email = "aliyahm@mycompany.com"
groups = ["logged-in-users", "readers", “fe-dev”]
password = ${var.artifactory_default_pw}
}
resource "artifactory_user" "fe-user-dev1" {
name = "sanjayr"
email = "sanjayr@mycompany.com"
groups = ["logged-in-users", "readers", “fe-dev”]
password = ${var.artifactory_default_pw}
}
resource "artifactory_user" "fe-user-dev2" {
name = "ericb"
email = "ericb@mycompany.com"
groups = ["logged-in-users", "readers", “fe-dev”]
password = ${var.artifactory_default_pw}
}
resource "artifactory_permission_target" "fe-perm" {
name = "fe-perm"
repo {
includes_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还支持以下内容:
replication配置
您可以通过提供程序创建和管理Artifactory存储库复制。 设施可用于多站点复制配置或单个Artifactory复制。
证书
Artifactory证书资源可用于创建和管理Artifactory证书,以针对远程存储库进行客户端身份验证。
Data source
数据源使数据能够被提取或计算,以在Terraform配置中的其他地方使用。 Artifactory Provider为Artifactory存储库文件和Artifactory存储库中存储的文件的元数据提供了可用的数据源。
最后如果想了解所有Artifacotry terraform Provider的资源可以参考terraform官方指南:https://registry.terraform.io/providers/jfrog/artifactory/latest/docs
Artifactory Terrafrom plugin来了!
标签:pytho href form packages password 安全 工程 targe 通过
原文地址:https://blog.51cto.com/jfrogchina/2562981