Artifactory Terrafrom plugin来了!

Tommy744 等级 465 0 0

前言

随着多云环境和DevOps普及,越来多的DevOps工程师要面临云上与云下资源的自动化管理问题。 作为全球领先的Artifact Managenment软件供应商,JFrog的Artifactory也被众多知名企业采用,成为当前最流行的devops工具之一。那么通过什么方法能够在我们的云环境中快速部署一套Artifactory呢?相信大家都会立刻想起另外一个知名的IaC工具terraform。 JFrog正式提供了terraform插件,可以让大家通过IaC的方式快速部署Artifactory。

T****erraform****新增Artifactory插件****

Terraform是HashiCorp提供的基础架构即代码工具,可用于以安全,可重复的方式构建,更改和管理基础架构。 使用称为HashiCorp配置语言(HCL)的配置语言,操作员和基础架构团队可以通过易于理解的自动化部署来管理环境。

Terraform的Artifactory Provider是一个免费插件,该插件扩展了HCL以能够构建Artifactory实例。它使基础架构管理员可以通过Terraform脚本配置Artifactory信息库,权限等。

一旦能够自动完成Artifactory的配置,便可以在多个Artifactory实例或数百个Artifactory实例中可靠地复制这些配置。

Artifactory Terrafrom plugin来了!

通过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” {

# Configuration options

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玩家的使用习惯

# Create a new repository

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配置A****rtifactory Users, Groups, and Permissions****

同样可以将resource添加到Terraform脚本中,以配置可以使用特定权限访问Artifactory存储库的用户和组。例如,您可以编写脚本来为可以访问您创建的存储库的前端开发人员团队创建一组用户。

# Create a new Artifactory group for the team

resource “artifactory_group” “fe-group” {

name = “fe-dev”

description = “Front End Development Team”

admin_privileges = false

}

# Create new Artifactory users for the team

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}

}

# Create a new Artifactory permission target called fe-perm

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

本文转自 https://www.kubernetes.org.cn/8702.html,如有侵权,请联系删除。

收藏
评论区

相关推荐

30分钟带你了解Web工程师必知的Docker知识
前言 笔者之前和朋友一直在讨论web技术方向的话题,也一直想了解web运维方面的知识,所以特意请教了一下我的朋友老胡,他对web运维和后端技术有非常多的实战经验,所以在本
头条研发-SRE运维研发实习生视频面试(一, 二面)
(about:blank%E4%B8%80%E9%9D%A230min "一面 (30min)")一面 (30min) 江湖规矩自我介绍, 很罕见的没有用算法题起手, 直接就问很具体的问题, 点个赞 <3 (htt
uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用
专属邀请链接 这里进入腾讯位置服务官网: https://lbs.qq.com?lbs_inviteG9MRFLG(https://lbs.qq.com?lbs_inviteG9MRFLG) 项目开始于20210127 晚8 uniapp模板地址 https://ext.dcloud.net.cn/plugin?id4067(htt
MySQL 8.0 创建 user 及允许远程连接
进入 mysql 命令行模式mysql h127.0.0.1 uroot p 查看当前 mysql 版本select version(); 查看当前 mysql 用户列表信息select host, user, authentication_string, plugin from user; 执行完上面的命令后会显示一个表格 查看表格
运维监控系统——Zabbix简介
前言对于运维人员来说,监控是非常重要的,因为如果想要保证线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监
运维安全-信息安全
本文转自 ,如有侵权,请联系删除。
运维,关于监控的那些事,你有必要了解一下
作者 | 乔克 来源 | 运维开发故事监控是整个运维以及产品整个生命周期最重要的一环,它旨在事前能够及时预警发现故障,事中能够结合监控数据定位问题,事后能够提供数据用于分析问题。一、监控的目的监控贯穿应用的整个生命周期。即从程序设计、开发、部署、下线。其主要的服务对象有: 技术 业务 技术通过监控系统可以了解技术的环
数据库运维做些什么?
一. 数据库生命周期 结合软件生命周期、项目的开展,数据库的生命周期大致可分为这么几个阶段。 (https://imghelloworld.osscnbeijing.aliyuncs.com/8552b8c2942bb8ce23
DevOps简介
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。DevOps的概念DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
DevOps概述
DevOps概述DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营(运维)、质量保障(测试)(QA)部门之间的沟通、协作与整合。随着业务复杂化和人员的增加,开发人员和运维人员逐渐演化成两个独立的部门,他们工作地点分离,工具链不同,业务目标也有差异,这使
DevOps与CICD的区别 及 docker、k8s的CICD思路
1\. DevOps简介DevOps 就是开发(Development)、测试(QA)、运维(Operations)这三个领域的合并。image.png为什么要合并这三个领域?主要是开发和运维的脱节。DevOps是一种思想、一组最佳实践、以及一种文化。DevOps落地实施,从组织架构、设计人员、流程、人员分工、人员技能到工具,变化
一份DevOps工程师职责清单,待你查阅
如果一个组织的开发人员和运维人员是独立工作的模式,实施DevOps就需要对组织进行大的调整。因为,只有具备合适的组织人员,文化和工具来才能成功实施DevOps。根据显示,实施DevOps的最常见的障碍之一是员工缺乏技能。什么是DevOps工程师?DevOps工程师是一位IT专家,应该对开发和运维工作都有广泛的了解,包括编码,基础
Artifactory Terrafrom plugin来了!
前言随着多云环境和DevOps普及,越来多的DevOps工程师要面临云上与云下资源的自动化管理问题。 作为全球领先的Artifact Managenment软件供应商,JFrog的Artifactory也被众多知名企业采用,成为当前最流行的devops工具之一。那么通过什么方法能够在我们的云环境中快速部署一套Artifac
Plugin 'org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5' not foun
pom.xml文件报错原先是没有指定版本,后来指定了版本还是报错。后来改为 <groupIdorg.mybatis.generator</groupId <artifactIdmybatisgeneratormavenplugin</artifactId <version1.3.5</versionlanguage发现可以了。
运维大佬嘲笑我,这个你都不知道?
大家好,我是阿沐,一个喜欢分享技术而且爱好写散文的程序员。今天来给大家介绍一下info命令查看redis具体的详细信息讲解!起因是:前几年我在老家郑州实习面试(那个时候还没有毕业)的时候遇到面试官提问;面试官来于百度总部的工程师6年java开发经验+3年多的PHP开发经验,我在他的面前基本就是弟弟中的弟弟,虽然勉强通过入职了,但是却被运维无情地嘲笑,就因为组