云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港带宽_方舟非专用服务器_免费1年

小七 141 0

使用Terraform 0.13自动安装第三方提供商

6月,在HashiConf digital上,我们发布了HashiCorp terraform0.13的beta版本。terraform0.13的许多改进都集中在快速增长的官方、合作伙伴和社区提供者的集合上。使用terraform0.13,Terraform init将自动下载并安装HashiCorp Terraform注册表中的合作伙伴和社区提供者,遵循HashiCorp支持的官方提供者的相同的清晰工作流。这些对生态系统的改进将使Terraform用户和提供商开发者受益匪浅。本博客将讨论引入一个新的provider source属性,该属性允许您声明Terraform提供者的注册表源。它的主要设计目标是为使用Terraform注册表中的提供者创建一个清晰的工作流。此属性是terraform配置块中必需的"提供程序"设置的一部分。»背景从历史上看,Terraform注册表一直是各种Terraform模块的一站式商店。您可以按名称、作者或关键字搜索模块,并按主要云提供商类型筛选结果。您可以查看有关如何配置模块的基本信息,查看模块在GitHub上的位置,并查看自述文件和参考信息。现在,您可以在Terraform注册表中找到模块和提供者。模块页面的工作方式与之前基本相同,您会注意到与提供者页面的一些相似之处。供应商提供了他们的完整文档供您查阅和参考。所需的提供者语法是一种支架,它允许用户将合作伙伴和社区提供者包括到他们的配置中。它将允许Terraform自动下载这些提供者。它还解决了由fork和通用提供者名称(例如DNS)引起的名称空间冲突问题。»提供程序源地形{所需的提供程序{#HashiCorp的dns提供程序硬盘号码={source="hashicorp/dns"}#一个假设的替代dns提供者我的域名={source="mycorp/dns"}}}提供程序源字符串由以下部分组成:[主机名]/[名称空间]/type因为有可能有多个同名的提供者,我们在source旁边引入了一个新概念:提供者源地址。在Terraform中,提供者源地址是通过解析创建的源字符串,并提取主机名、命名空间和类型。如果省略hostname,Terraform将使用Terraform注册表主机名作为默认主机名。对于Terraform注册表中hashicorp命名空间中的提供者,主机名和命名空间都是可选的。命名空间总是设置主机名时需要。如果"source"被完全省略,Terraform假设提供者引用的是公共注册表中hashicorp命名空间中的提供程序。地形因此确定以下提供程序都具有相同的源地址,"registry.terraform.io/hashicorp/random":#完全限定的源地址字符串包括主机、命名空间和类型随机={源="registry.terraform.io/hashicorp/random"}#如果省略了主机,terraform假设主机是# "注册表.terraform.io".随机={source="hashicorp/随机"}#这与上面的示例相同;source不区分大小写。随机={source="HashiCorp/随机"}#如果源字符串只包含类型,terraform假定主机#是"注册表.terraform.io名称空间是"hashicorp"。随机={source="随机"}#如果没有源,terraform假设主机是"注册表.terraform.io",#名称空间是"hashicorp",类型是映射键(random)。随机={}»本地名称如果在一个配置中有多个具有相同类型的提供程序,则可以为每个提供程序声明特定于模块的本地名称以便于识别它们在你的配置中。在下面的示例中,声明了两个具有相同类型("dns")的提供程序。一个被赋予本地名称"hdns",另一个被称为"mydns":地形{所需的提供程序{#HashiCorp的dns提供程序硬盘号码={source="hashicorp/dns"}#一个假设的替代dns提供者我的域名={source="mycorp/dns"}}}在提供程序中配置提供程序时,请使用本地名称作为标签阻止:提供商"HDN"{#"hashicorp/dns"提供程序配置}提供程序"mydns"{#"mycorp/dns"提供程序配置}如果本地名称与提供程序类型不同,则必须指定每个资源的提供程序:资源"dns_record"{provider="hdns"#资源配置}资源"dns记录集"{provider="我的DNS"#资源配置}»第三方提供商Terraform需要一种方法来区分磁盘上的提供者-二进制名称不再足够,因此我们创建了一个新的目录层次结构,Terraform可以使用它精确地确定在磁盘上找到的每个提供程序的源地址:$PLUGIN_目录/$SOURCEHOSTNAME/$SOURCENAMESPACE/$NAME/$VERSION/$OS_$ARCH/第三方提供程序插件-本地安装的提供程序,不在注册表-需要分配一个(任意)源并放置在适当的Terraform的子目录以查找和使用它们。安装自定义插件时,您可以选择任意标识符(由字母和连字符组成)用于$SOURCEHOSTNAME和$SOURCENAMESPACE子目录。例如,如果要使用社区创建的多米诺骨牌提供者供应商{自定义插件={版本=0.1"]源="example.com/myorg/customplugin"}}二进制文件必须放在以下目录中(前提是使用基于linux的amd64平台):/插件/example.com/myorg/customplugin/0.1/linux_amd64/对于使用Terraform 0.13的第三方提供程序的端到端示例,以及有关提供程序用法的更多信息,请尝试我们的学习平台上的教程。»对提供程序安装程序的更改虽然大多数用户不需要这些额外的细节,但是那些使用本地提供者的用户应该注意由这些提供者的源地址驱动的新目录结构。»升级步骤您需要通过添加所需的\u提供程序来升级配置配置中除HashiCorp owned之外的任何提供程序的条目供应商。新的0.13upgrade命令分析配置并为您的配置。本地安装的提供商需要我们的升级指南中概述的其他步骤。我们认为大多数用户和提供商开发人员都会喜欢将社区和合作伙伴提供商作为核心terraforminit工作流的一部分。立即下载TerraForm0.13测试版,进行试驾。加入我们的社区论坛讨论,问题,等等!