Terraform Provider 加速方案

news/2024/11/1 11:45:43/

引言

Terraform 是一个安全和高效的用来构建、更改和管理基础架构的工具,其实现了基础设施即代码(Infrastructure-as-Code,IaC),即通过代码来描述基础设施,可以通过代码来管理例如 AWS、阿里云等公有云资源或其他基础设施。Terraform 有很强大的扩展能力,通过 Provider 可对接各种类型的基础设施,如公有云(AWS、阿里云、华为云等)、Kubernetes、数据库、云服务接口等,有官方提供的 Provider,也有第三方提供的,同时官方也提供了 Terraform Registry,作为 Provider 的仓库。

但是官方的 Terraform Registry 在境外,和其他境外的仓库一样,有时下载非常慢。这对于使用体验非常不好,不过官方也提供了一些方式来加速下载,接下来我们来看看如何加速 Provider 的使用。

使用

首先确保已安装 Terraform Cli,Terraform Cli 支持使用配置文件或环境变量来配置。

环境变量

环境变量比较多,可参考官方文档,但是推荐优先使用配置文件。

配置文件

默认用户配置文件的位置取决于操作系统:

  • Windows 系统:文件名为 terraform.rc,在用户 %APPDATA% 环境变量所指的目录下,不同的 Windows 版本的值不同。Win 10 的位置在 C:\Users\用户名\AppData\Roaming
  • Mac/Linux 系统:文件名为 .terraformrc,在用户目录下,~/.terraformrc

也可以使用环境变量 TF_CLI_CONFIG_FILE 来指定自定义配置文件。

配置文件的内容为:

// 插件缓存路径
plugin_cache_dir = "/Users/wwt/.terraform.d/plugin-cache"
// 关闭内置的更新和安全检查
disable_checkpoint = true
// provider 安装配置
provider_installation {// 文件系统镜像filesystem_mirror {path = "/Users/user/.terraform.d/mirror"}// 网络镜像,仅针对阿里云 Provider 使用阿里云源network_mirror {url = "https://mirrors.aliyun.com/terraform/"// 限制只有阿里云相关 Provider 从国内镜像源下载include = ["registry.terraform.io/aliyun/alicloud","registry.terraform.io/hashicorp/alicloud",]}// 其他则从官方源获取direct {// 声明除了阿里云相关 Provider, 其它 Provider 保持原有的下载链路exclude = ["registry.terraform.io/aliyun/alicloud","registry.terraform.io/hashicorp/alicloud",]}
}

上面配置了一个阿里云镜像,针对阿里云的 Provider 可以从阿里云的源快速下载。其他国内的公有云也有类似的配置,可查看公有云的官方文档。

另一个配置项 filesystem_mirror 配置了本地镜像,由于每个 Terraform 项目 init 时会下载 Provider 到项目目录下,使用本地镜像可先将 Provider 下载到本地缓存,需要时先从本地下载,可大大加快 init 的速度。

最后 direct 的配置,找不到的从官方源下载 Provider。

配置完成后,可在任意项目目录下执行如下命令:

terraform providers mirror /Users/user/.terraform.d/mirror

先将项目的 Provider 下载的本地镜像源下,下一次其他项目 init 时就会先从本地镜像源优先查找。


http://www.ppmy.cn/news/1543570.html

相关文章

呼吁中兴向全国免费开放专利许可,支持国产创新,你支持吗?

10月21日,联想向英格兰和威尔士高等法院起诉中兴专利侵权,引发网友热议。 10月30日,中兴在网上做出回应,表示虽难以理解但仍表示尊重。 至此,围观群众的目光也被两家大厂彻底吸引。联想、中兴为何对簿公堂&#xff0…

【17】 傅立叶分析

傅立叶分析(Fourier Analysis)是Excel数据分析工具库中的一种方法,用于将时间序列数据分解为不同频率的正弦波(sinusoidal components)。它特别适用于分析周期性数据或信号处理,帮助用户发现数据中的周期性模式、频率成分及其幅度。 傅立叶变换将复杂的时间序列数据转化…

第N5周:Pytorch文本分类入门

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 本周任务: 了解文本分类的基本流程学习常用数据清洗方法学习如何使用jieba实现英文分词学习如何构建文本向量 前期准备 加载数据 import torch…

LeetCode Hot 100:贪心算法

LeetCode Hot 100&#xff1a;贪心算法 121. 买卖股票的最佳时机 class Solution { public:int maxProfit(vector<int>& prices) {int minPrice INT_MAX;int maxProfit 0;for (int& price : prices) {minPrice min(minPrice, price);maxProfit max(maxProf…

AWS CDK 漏洞使黑客能够接管 AWS 账户

Aquasec 的安全研究人员最近在 AWS Cloud Development Kit &#xff08;CDK&#xff09; 中发现了一个关键漏洞&#xff0c;该漏洞可能允许攻击者获得对目标 AWS 账户的完全管理访问权限。 该问题于 2024 年 6 月报告给 AWS&#xff0c;影响使用版本 v2.148.1 或更早版本的 CD…

蓝牙BLE开发——红米手机无法搜索蓝牙设备?

解决 红米手机&#xff0c;无法搜索附近蓝牙设备 具体型号当时忘记查看了&#xff0c;如果你遇到有以下选项&#xff0c;记得打开~ 设置权限

初探Servlet

文章目录 1. Servlet概述1.1 定义1.2 作用 2. 主要知识点2.1 生命周期2.2 请求处理2.3 Servlet配置 3. 案例演示3.1 创建Web应用项目3.2 修改项目工件名3.3 重新部署Web项目3.4 创建WelcomeServlet3.5 编写doGet方法代码3.6 编写doPost方法代码3.7 访问WelcomeServlet 4. 小结 …

Spark窗口函数

1、 Spark中的窗口函数 窗口就是单纯在行后面加一个列 可以套多个窗口函数&#xff0c;但彼此之间不能相互引用&#xff0c;是独立的 窗口函数会产生shuffle over就是用来划分窗口的 (1) 分组聚合里面的函数&#xff0c;基…