Terraform使用本地编译(In-house)的Providers

简介: ## Terraform Provider的全网标识符Terraform的Provider在全网的的标识符由三部分组成,分别为`hostname`,`namespace`和`type`组成,即`//`。`hostname`是指分发、下载Provider的域名,默认为`registry.terraform.io`。`namespace`是指提供、开发Provider的组织的命名空间,默认为`has

Terraform Provider的全网标识符

Terraform的Provider在全网的的标识符由三部分组成,分别为hostnamenamespacetype组成,即<hostname>/<namespace>/<type>hostname是指分发、下载Provider的域名,默认为registry.terraform.ionamespace是指提供、开发Provider的组织的命名空间,默认为hashicorptype是指Provider的具体类型。

例如有以下Terraform模板:

terraform {
    required_providers {
         alicloud = {
          source = "aliyun/alicloud"
          version = "1.126.0"
        }
    }
}
AI 代码解读

上述模板使用terraform init命令会默认去registry.terraform.io下载aliyun开发的alicloudProvider的1.126.0版本。

本地安装Terraform Provider

如果使用本地安装插件有两种方法。首先两种方法都需要将下载的Provider或者本地编译完成的Provider放置在以下文件目录层级:

XX(e.g. /usr/share/terraform/providers/)
└── <hostname>(e.g. registry.terraform.io)
    └── <namespace>(e.g. aliyun)
        └── <type>(e.g. alicloud)
            └── <version>(e.g. 1.127.0)
                └── <your OS>(e.g. linux_amd64)
                    └── <binary file>(e.g. terraform-provider-alicloud)
AI 代码解读

方法一:使用terraform init的自带参数

第一种方法,使用terraform initplugin-dir参数:

terraform init -plugin-dir=/usr/share/terraform/providers
AI 代码解读

方法二:编写配置文件

第二种方法,编写./terraformrc配置文件,该文件需要放在$HOME/目录下:

provider_installation {
  filesystem_mirror {
    path    = "/usr/share/terraform/providers"
    include = ["registry.terraform.io/*/*"]
  }
}
AI 代码解读

其中include字段是指符合该通配符全网标识符的Provider,需要去/usr/share/terraform/providers查找本地Provider。./terraformrc的编写更详细的参数可以参考官网

目录
打赏
0
0
0
0
2
分享
相关文章
玩转阿里云 Terraform(三):Terraform 的安装和加速
本文以Mac OS为例,详细介绍如何在本地安装Terraform,并在文章最后介绍一种可以加速Terraform安装的方法。
15603 0
OAuth2实现单点登录SSO完整教程,其实不难!(上)
OAuth2实现单点登录SSO完整教程,其实不难!
3998 1
OAuth2实现单点登录SSO完整教程,其实不难!(上)
阿里巴巴开源 容器镜像加速技术DADI 上手指南
阿里资深技术专家在阿里云开发者社区特别栏目《周二开源日》直播中,介绍刚于3月份开源的容器镜像加速器项目 DADI ,并带大家快速上手使用。本文为直播内容文字整理,看直播回放,请点击文首链接~
阿里巴巴开源 容器镜像加速技术DADI 上手指南
阿里云官方yum源
阿里云官方yum源
71861 0
|
9月前
|
探索基础设施即代码(IaC):Terraform 与 CloudFormation 的应用
探索基础设施即代码(IaC):Terraform 与 CloudFormation 的应用
235 1
史上最全 Terraform 入门教程,助你无坑入门!
【10月更文挑战第26天】这是一个全面的 Terraform 入门教程,涵盖了 Terraform 的基本概念、安装步骤、基础配置、变量和输出变量的使用、模块的定义与使用,以及状态管理。通过实例讲解如何创建本地文件资源和 AWS S3 桶,帮助初学者快速上手并掌握 Terraform 的核心功能。
1271 8
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。
Terraform Module 编写指南
Module 是一个Terraform 模板,是对多个子节点,子资源,子架构模板的组合和抽象。利用Module 在降低模板编写和维护复杂度的同时,使得模板结构更加简洁清楚。为什么要使用 Module,详见文章[ Module 让 Terraform 使用更简单](https://www.atatech.org/articles/119465)。
8089 0
iperf3的常用命令样例
iperf3是一个用于测量网络带宽的工具,以下是一些常用的iperf3命令样例: 1. 在服务器模式下启动iperf3: ``` iperf3 -s ``` 2. 在客户端通过TCP连接测试带宽: ``` iperf3 -c <服务器IP地址> ``` 3. 在客户端通过UDP连接测试带宽: ``` iperf3 -c <服务器IP地址> -u ``` 4. 指定连接端口号: ``` iperf3 -c <服务器IP地址> -p <端口号> ``` 5. 设置测试时间: ``` iperf3 -c <
1802 0
rds公共网络/公网访问
RDS公网访问允许用户通过互联网连接云数据库,但默认关闭以确保安全。需手动开启并配置公网IP或域名,使用时需注意安全风险,如设置严格防火墙规则、启用SSL/TLS加密和强化身份验证。公网访问可能产生带宽、IP及附加服务费用。内网访问是更安全、经济的选择,除非特定场景(如使用Linked Server功能)需公网访问。在实施时,应权衡安全、成本和需求。
556 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等