精华内容
下载资源
问答
  • Terraform

    千次阅读 2019-04-15 16:19:06
    什么是Terraform Terraform是一种开源工具,用于安全高效地预配和管理云基础结构。 概览 HashiCorp Terraform是一个IT基础架构自动化编排工具,可以用代码来管理维护 IT 资源。Terraform的命令行接口 (CLI) 提供...

    什么是Terraform

    Terraform是一种开源工具,用于安全高效地预配和管理云基础结构

    概览

    HashiCorp Terraform 是一个IT基础架构自动化编排工具,可以用代码来管理维护 IT 资源。Terraform的命令行接口 (CLI) 提供一种简单机制,用于将配置文件部署到阿里云或其他任意支持的云上,并对其进行版本控制。它编写了描述云资源拓扑的配置文件中的基础结构,例如虚拟机、存储帐户和网络接口。

    Terraform是一个高度可扩展的工具,通过 Provider 来支持新的基础架构。Terraform能够让您在阿里云上轻松使用 简单模板语言 来定义、预览和部署云基础结构。您可以使用Terraform来创建、修改、删除ECS、VPC、RDS、SLB等多种资源。

    优势

    • 将基础结构部署到多个云

      Terraform适用于多云方案,将相类似的基础结构部署到阿里云、其他云提供商或者本地数据中心。开发人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。

    • 自动化管理基础结构

      Terraform能够创建配置文件的模板,以可重复、可预测的方式定义、预配和配置ECS资源,减少因人为因素导致的部署和管理错误。能够多次部署同一模板,创建相同的开发、测试和生产环境。

    • 基础架构即代码(Infrastructure as Code)

      可以用代码来管理维护资源。允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置 。

    • 降低开发成本

      您通过按需创建开发和部署环境来降低成本。并且,您可以在系统更改之前进行评估。

    应用场景

    Terraform可以对基础设施进行编码,利用代码来进行资源的增删查改。

    创建基础设施

    您可以使用Terraform创建、管理ECS、VPC、SLB等基础资源。

    单击这里查看示例模板创建多台ECS并挂载数据盘。

    均衡负载业务流量

    您可以将访问流量按照定义的转发规则分发到指定的后端服务器(ECS实例),提高应用系统对外的服务能力,消除单点故障。

    单击这里查看示例模板部署负载均衡服务。

    应用隔离

    专有网络是基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离。您可以将需要网络隔离的业务部署在不同的VPC内。

    单击这里查看示例模板在VPC中创建ECS实例并部署Nginx。

    集群管理

    您可以使用Terraform快速创建专有网络的集群。

    单击这里查看示例模板在阿里云中启动kubernetes集群,并且在集群中创建VPC、交换机和NAT网关等资源。

     

    来源 :阿里云

    https://help.aliyun.com/document_detail/95820.html?spm=a2c4g.11174283.3.1.19ec11e9IIcZty

    展开全文
  • terraform-源码

    2021-03-22 05:53:00
    terraform
  • Terraform-源码

    2021-03-13 17:53:01
    Terraform
  • 初识Terraform

    2021-04-12 16:45:09
    Terraform

    认识

    • Terraform 是一个 IT 基础架构自动化编排工具,它的口号是 “Write, Plan, and create Infrastructure as Code”, 基础架构即代码。
    1. 基础设施即代码,声明式的代码工具
    2. 通过配置语言,实现可读的自动化部署
    3. 通过不同的配置语言适配不同的运营商

    Overview

    • Terraform使用其自己的配置语言,旨在允许对基础结构进行简洁的描述。

    • Terraform语言是声明性的,描述的是预期目标,而不是达到目标的步骤。

    • Terraform语言的主要目的是声明资源。 所有其他语言功能的存在只是为了使资源的定义更加灵活和方便。

    • 可以将一组资源收集到一个模块中,从而创建更大的配置单元。 资源描述单个基础结构对象,而模块可能描述一组对象以及它们之间的必要关系,以便创建更高级别的系统。

    • Terraform配置由一个开始评估的根模块以及一个模块调用另一个模块时创建的子模块树组成。


    使用

    参数、代码块以及表达式

    Terraform语言的语法仅包含一些基本元素:

    resource "vsphere_custom_attribute" "attribute" {
      name                = "terraform-test-attribute"
      managed_object_type = "VirtualMachine"
    }
    
    <BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
      # Block body
      <IDENTIFIER> = <EXPRESSION> # Argument
    }
    
    • BLOCK是其他内容的容器,通常代表某种对象(例如资源)的配置。 块具有块类型,可以具有零个或多个标签,并且具有包含任意数量的参数和嵌套块的主体。 Terraform的大多数功能由配置文件中的顶级块控制。
    • Argument为名称分配一个值。 参数在块内使用。
    • EXPRESSION可以通过字面量或引用并组合其他值来表示一个值。 表达式作为参数的值使用,或者在其他表达式中作为值使用。

    Terraform 常用命令

    命令 含义 类型
    terraform plan 资源的预览 资源管理
    terraform apply 资源的新建和变更 资源管理
    terraform show 资源的展示 资源管理
    terraform destroy 资源的释放 资源管理
    terraform import 资源的导入 资源管理
    terraform taint 标记资源为被污染 资源管理
    terraform untaint 取消被污染标记 资源管理
    terraform output 打印出参及其值 资源管理
    terraform state list 列出当前state中的所有资源 状态管理
    terraform state show 展示某一个资源的属性 状态管理
    terraform state pull 获取当前state内容并展示 状态管理
    terraform state rm 移除特定的资源 状态管理
    terraform state mv 变更特定资源的存放地址 状态管理
    terraform init 初始化加载模块 其他
    terraform validate 对tf脚本语法进行检查 其他

    使用步骤

    • 使用 Terraform 的常规流程:
    1. 创建一个 terrafom 项目,编写所需要的 tf 脚本。
    2. 在命令行下运行terraform init进行初始化。
    3. 运行 Terraform 管理命令,例如 terraform apply对云端IT资源进行操作。
    4. 根据需求,修改配置文件,重新执行第三步。
    • Terraform 项目执行的过程发生了什么?
      • 执行 terraform init 初始化项目,Terraform 会在项目根目录下加载所有的 *.tf文件,读取配置信息,生成一个.terraform目录,自动下载与对应的远端资源进行通行的必要插件。
      • 在命令行下执行 terraform apply命令,terraform 会根据 tf脚本对远程IT资源进行更新或者创建,IT资源的状态信息会保存在terraform.tfstate文件中,这是一个自动创建的 json文件,可以理解为一个缓存文件。每次通过 terraform 操作远端时,会读取该文件的状态信息进行对比,然后操作,再将状态信息写回到terraform.tfstate中。

    代码组织

    • Terraform语言使用以.tf文件扩展名命名的配置文件。 还有一种基于JSON的语言变体,其文件扩展名为.tf.json。

    • 配置文件必须始终使用UTF-8编码,并且按照惯例,通常使用Unix样式的行尾(LF)而不是Windows样式的行尾(CRLF)进行维护,尽管两者均被接受。

    • 模块是.tf或.tf.json文件的集合,这些文件保存在一个目录中。 运行Terraform时,根模块是根据当前工作目录中的配置文件构建的,该模块可以引用其他目录中的子模块,而这些子模块又可以引用其他模块等。

    • 最简单的Terraform配置是仅包含单个.tf文件的单个根模块。 随着添加更多资源,配置可以逐渐增长,方法是在根模块中创建新的配置文件,或者将资源集组织到子模块中。


    文件说明

    Terraform执行时会读取工作目录中的.tf/.tfvars文件,所以可以按照不同的职责将参数放入不同的文件中。

    文件名 说明
    provider.tf provider配置
    terraform.tfvars 配置provider要用的变量
    varable.tf 通用变量
    resource.tf 资源定义
    data.tf 包文件定义
    output.tf 输出

    provider

    • 在 Terraform 中负责管理资源的生命周期:创建、读取、更新、删除。比如访问 AWS 中的资源需要使用 AWS 的 provider,访问 Azure 中的资源需要使用 Azure 的 provider。

    resource

    • 是基础设施的一个组件。它可能是一些低级组件,例如物理服务器、虚拟机或容器。也可以是更高级别的组件,如电子邮件提供程序、DNS记录或数据库提供程序。

    配置顺序

    因为Terraform的配置语言是声明性的,所以块的顺序通常并不重要。 (资源中预配器块的顺序是影响块顺序的唯一主要功能。)

    Terraform根据配置中定义的资源之间的关系自动以正确的顺序处理资源,因此您可以采用对基础架构有意义的任何方式将资源组织到源文件中。

    展开全文
  • TERRAFORM CRASH

    2020-12-25 18:08:23
    <div><h3>Terraform Version <p>Terraform v0.12.24 <h3>vSphere Provider Version <p>provider.vsphere v1.17.2 <h3>Affected Resource(s) <p>vsphere_virtual_machine <h3>Terraform Configuration Files <pre>...
  • <div><p><em>This issue was originally opened by as hashicorp/terraform#20180. It was migrated here as a result of the <a href="https://www.hashicorp.com/blog/upcoming-provider-changes-in-terraform-0-...
  • hashicorp/terraform:light plan Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state ...
  • terraform-provider-terraform 该存储库包含可与Terraform Core的0.10.x发行版一起使用的单独版本。 在0.10之前以及从0.11开始,此提供程序是未打包为提供程序插件。 此提供程序将不会在此存储库中进行进一步的...
  • Please note that we try to keep the Terraform issue tracker reserved for bug reports and feature requests. For general usage questions, please see: https://www.terraform.io/community.html.</p> <h3>...
  • Terraform crash

    2020-12-08 18:32:11
    <div><p><em>This issue was originally opened by as hashicorp/terraform#17840. It was migrated here as a result of the <a href="https://www.hashicorp.com/blog/upcoming-provider-changes-in-terraform-0-...
  • Terraform Crashes

    2021-01-12 08:08:46
    <h3>Community Note <ul><li>Please vote on this issue by adding a 👍 ...terraform-providers/terraform-provider-aws</p></div>
  • Terraform Enterprise AWS模块 重要信息:您正在查看官方模块的Beta版,以安装Terraform Enterprise。 此新版本与早期版本不兼容,并且当前不用于生产。 使用前,请联系您的客户成功经理以获取详细信息。 这是用于...
  • terraform-aws-bootstrap:用于Terraform远程状态配置的Terraform
  • dockerfile-terraformTerraform Dockerfile
  • terraform-modules:Terraform模块
  • 安装Terraform 如果您使用的是MacOS,则可以运行下一个命令来安装TF: $ brew install terraform 注意:您必须将HOMEBREW安装到主机上,例如: $ sudo /bin/bash -c " $( curl -fsSL ...
  • terraform_modules AWS Terraform模块
  • terraform_proxmox terraform_proxmox
  • Terraform Cloud /企业提供商 的官方Terraform提供商。 由于Terraform Enterprise是Terraform Cloud的自托管发行版,因此该提供程序支持Cloud和Enterprise用例。 在所有/大多数文档中,该平台始终将其表示为“ ...
  • terraform-examples:样例Terraform代码
  • <p>I wanted to create an EKS cluster on terraform by not specifying VPC/subnet/security group and specifying everything else. But, when I ran the terraform config, it resulted into terraform crash. ...
  • terraform-github-terraform-repo

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,286
精华内容 11,314
热门标签
关键字:

terraform