怎么关闭自动升级(手机怎么关闭自动升级)
1030
2022-05-30
Terraform配置缓存
一 背景
需要手动或者terraform init一次下载, 然后缓存。后续直接使用缓存。
本次实践使用的是Linux/Mac 系统,如果是windows系统有两点不同的配置。
Terraform使用预填充插件(防止通过init命令从web下载)。
配置文件使用与 .tf 文件相同的 HCL 语法,但具有不同的属性和块。以下示例说明了一般语法;有关每个设置的含义的信息,请参阅以下部分:
credentials :配置用于 Terraform Cloud 或 Terraform Enterprise 的凭据。有关详细信息,请参阅下面的凭据Credentials。
credentials_helper:为 Terraform Cloud 或 Terraform Enterprise 配置用于存储和检索凭据的外部帮助程序。有关详细信息,请参阅下面的凭据助手。
disable_checkpoint :设置为 true 时,禁用需要联系 HashiCorp 提供的网络服务的升级和安全公告检查。
disable_checkpoint_signature :当设置为 true 时,允许上述升级和安全公告检查,但禁止使用匿名 id 来删除重复警告消息。
plugin_cache_dir :启用插件缓存并以字符串形式指定插件缓存目录的位置。
provider_installation :自定义 terraform init 在安装提供程序插件时使用的安装方法。有关详细信息,请参阅下面的提供程序安装。
二 配置
# 创建缓存目录 mkdir -pv $HOME/.terraform.d/terraform-plugin-cache # 写入配置文件 cat > $HOME/.terraform.d/.terraformrc < 三 初始化 terraform init进行联网下载,或者可以进入到registry.terraform.io 手动通过github下载 可以看到在缓存目录下已经成功缓存 四 离线测试 4.1 制定plugin-dir terraform init --plugin-dir $HOME/.terraform.d/terraform-plugin-cache/ 4.2 定义Terraform插件使用本地mirror 在.terraformrc 中添加filesystem_mirror provider_installation { filesystem_mirror { path = "/Users/xuel/.terraform.d/terraform-plugin-cache" include = ["registry.terraform.io/*/*"] } } $ terraform providers mirror /Users/larry/Software/terraform/plugins terraform init -plugin-dir=/Users/larry/Software/terraform/plugins 4.3 两者的练习与区别 前两个是相互联系的,因为它们都共享相同的底层机制:“文件系统镜像”插件安装方法。 使用terraform init -plugin-dir使Terraform实际上构造了一个one-offprovider_installation块,其中只包含一个引用给定目录的filesystem_mirror块。它允许您仅在一次安装操作中获得这种效果,而不是在中心位置为将来的所有命令配置它。具体而言,如果运行terraform init -plugin-dir=/example,则在功能上等同于以下CLI配置: provider_installation { filesystem_mirror { path = "/Users/xuel/.terraform.d/terraform-plugin-cache" include = ["registry.terraform.io/*/*"] } } 插件缓存目录不同,因为Terraform仍将访问配置的安装方法(默认情况下,每个提供商的原始注册表),但如果插件包文件已经在缓存中,则将跳过下载插件包文件(该文件实际上包含插件代码,而不是关于发布的元数据)。同样,它会将下载的任何新插件包保存到缓存中,以备将来使用。 因此,这不会阻止Terraform尝试通过网络访问原始注册表来安装任何新插件。这只是一个避免重复使用re-downloading相同包的优化。 注意事项 注意环境变量TF_CLI_CONFIG_FILE,全局生效添加之.bashrc中。 到此就完成了terraform离线本地源的配置了, 除了这种方式外其实也可以基于terraform开放的HTTP API协议,使用Python Flask写一个registry server。 如果想要自己手动下载,可以到这个网址:https://releases.hashicorp.com/ 参考链接 https://developer.aliyun.com/article/897960 https://www.5axxw.com/questions/content/8jxzkx https://www.terraform.io/cli/config/config-file Git
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。