Artifactory Terrafrom plugin来了!

Tommy744 等级 732 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,如有侵权,请联系删除。

收藏
评论区

相关推荐

运维安全-信息安全
本文转自 ,如有侵权,请联系删除。
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发现可以了。
IT:从运维到运营
_本文转自公众号:傲寒荐书,作者:陈傲寒_ _IT运维?IT运营?_ _都是 IT Operations,有什么区别?_ _IT运维管理?IT运营管理?_ _都是 ITOM,有什么区别?_ _一字之差,只是翻译不同,还是另有玄机?_ _其实,_**中文真的是一门更精确的语言 :-)** * _IT运维是“活着”,IT运营是“活得好”;_
MySQL运维之
**1、mysqldump备份一个数据库** mysqldump命令备份一个数据库的基本语法: mysqldump -u user -p pwd dbname > Backup.sql 我们来讲解一下备份的文件都包含了什么?\-- MySQL dump 10.13 Distrib 5.5.20, for Win32 (x86)\--
Ubuntu JFrog Artifactory 安装配置
Ubuntu JFrog Artifactory 安装配置 Artifactory 是 JFrog 的一个产品,是一个高可用二进制制品存储管理服务系统, 它提供先进的代理、高速缓存和安全设施 。 用来管理构建工具(如:gradle、maven、nuget、docker等等)等所依赖的二进制仓库,以方便统一管理第三方库和发布目标版本库,从而提高软件开发效率。
AIOps在美团的探索与实践——故障发现篇
![](https://oscimg.oschina.net/oscnet/up-45fc0178edcbec3835316f2c637b1b3f793.JPEG) 一、背景 ---- AIOps,最初的定义是Algorithm IT Operations,是利用运维算法来实现运维的自动化,最终走向无人化运维。随着技术成熟,逐步确定为Artificial
ClickHouse之DBA运维宝典
最近有位网友与我聊天,他是一名 DBA,问我在 ClickHouse 中有没有一些能够 “安家立命” 的运维 SQL 语句。我想对于这个问题很多朋友都会有兴趣,所以就在这里做一个简单的分享。 在 ClickHouse 默认的 system 数据库下(databse),拥有众多的系统表。我们对 ClickHouse 运行状态的各种信息,就主要来自于这
Debezium日常运维手机
关于Kafka-Connect: (1) 是否可以动态添加已有数据的新表?  不可以,Kafka-Connect需要配置先行。如果是已有数据的新表,无法通过修改已有的kafka-connect配置进行新表的Snapshot初始化。 建议通过table white list功能,进行新表的snapshot。然后等到稳定后,再合并到同一个Kafka-con
Linux日常运维小结
**1\. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?** 物理cpu个数:cat /proc/cpuinfo |grep -c 'physical id' CPU一共有多少核:grep -c processor /proc/cpuinfo 将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数。 **2\. 查看系统负载有两个常用的命
Linux运维常见面试题之精华收录
Linux运维常见面试题之精华收录 ================= **1、什么是运维?什么是游戏运维?** 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚
Maven 插件开发入门
### 一,快速开发你的第一个插件 1,创建一个maven-plugin目录,并通过CMD程序从后台进入此目录。 2,运行命令: > mvn archetype:create -DgroupId=com.test.maven -DartifactId=maven-hello-plugin -DarchetypeArtifactId=maven-arch
Nginx日志运维笔记
在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计。 **1)Nginx日志的标准格式(可参考:[http://www.cnblogs.com/kevingrace/p/5893499.html](https://www.oschina.net/ac
Spring Boot让jar可以直接运行
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</exe
Tomcat Maven Plugin使用
原文同步至:[http://www.waylau.com/tomcat-maven-plugin/](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.waylau.com%2Ftomcat-maven-plugin%2F) Apache Tomcat 的 Maven 插件提供了 go