Terraform博客文章,參考翻譯

Terraform – HashiCorp 全球最领先的云基础设施自动化工具
http://www.hashicorp.com/blog/terraform.html

以下是对博客投稿的日语翻译。仅供参考。

变形术

今天,我们宣布推出 Terraform。Terraform 是一款用于安全高效地构建、组合和运行基础架构的工具。从物理服务器到容器,再到SaaS产品,Terraform 能够创建和构建服务和应用程序所需的所有配置物。

使用Terraform可以完全将基础设施以代码形式描述,即使使用多个服务提供商。例如,服务器可以使用AWS,DNS可能使用CloudFlare,数据库可能在Heroku上运行。Terraform可以创建跨越这些供应商的资源。

使用Terraform,您可以系统化您在基础架构方面的知识。它不仅仅是一个新的工具,而是提供一个安全执行基础架构更改和更新的工作流程。

我们非常兴奋地宣布公开 Terraform。Terraform 的潜力无限,我们今天所提供的仅仅是一个开始而已。

请细读以下内容。

Terraform 的操作行为

这里将展示如何简单而强大地处理和运用Terraform的示例。有关更详细的技术细节,请查看详细文档。

Terraform的配置是用一种称为标记语言(Markup Language)的高级表达语法来描述基础设施资源。以下是一个配置示例:

resource "digitalocean_droplet" "web" {
   name = "tf-web"
   size = "512mb"
   image = "centos-5-8-x32"
   region = "sfo1"
}

resource "dnsimple_record" "hello" {
   domain = "example.com"
   name = "test"
   value = "${digitalocean_droplet.web.ipv4_address}"
   type = "A"
}

设置是声明性的。Terraform 会自动推测依赖关系,因此可以尽可能地并行化基础设施的依赖关系。

这个例子展示了Terraform如何组合多个服务提供商的资源。我们在DigitalOcean上创建了一个droplet,并且为了向DNSimple添加DNS记录,我们创建了这个droplet。通过代码来配置基础架构是一种新的、非常强大的方式。

为了构建基础设施,只需执行terraform apply。

$ terraform apply
digitalocean_droplet.web: Creating...
  image:  "" => "centos-5-8-x32"
  name:   "" => "tf-web"
  region: "" => "sfo1"
  size:   "" => "512mb"
digitalocean_droplet.web: Creation complete
dnsimple_record.hello: Creating...
  domain: "" => "example.com"
  name:   "" => "test"
  type:   "" => "A"
  value:  "" => "104.131.142.132"
dnsimple_record.hello: Creation complete

Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

按照计划进行,安全地反复执行。

与执行计划的安全迭代

Terraform具有重要功能,可安全地重复基础架构。即“执行计划”。执行计划会预先规划Terraform对基础架构所做的更改。然后该计划会被保存下来,以供应用(apply),接下来只需Terraform执行计划即可。

由于 Terraform 精确地了解您想对基础设施进行哪些更改(希望达到的状态),因此您可以确定 Terraform 不会执行任何意外的操作。

举个例子,在上述构建示例中,可以使用Terraform来改变DigitalOcean droplet的大小。前面的符号~表示的是,而不是销毁和更新资源,Terraform选择更新它们。

$ terraform plan
~ digitalocean_droplet.web
    size: "512mb" => "1gb"

在考虑了是否存在类似功能的工具后,Terraform是第一个这样的工具。我们认为这正是在实际系统中进行更改时所需要的工具。

令人驚訝的潛力

Terraform 可以执行比它表面看起来更多的任务。从历史上看,类似 Terraform 的工具只能构建低级别的计算、存储和网络资源,但是 Terraform 可以填补多个服务提供商之间的差异,因此 Terraform 可执行更多的处理。

以下的例子使用 Terraform 来描述在 Heroku 上运行的应用程序的所有构建组件。其中包括 Heroku 插件、应用程序设置和 DNS 条目。

resource "heroku_app" "web" {
    name = "terraform-www"

    config_vars {
        GITHUB_TOKEN = "TOKEN"
        TF_VERSION = "0.1"
    }
}

resource "heroku_domain" "web" {
    app = "${heroku_app.web.name}"
    hostname = "www.terraform.io"
}

resource "heroku_addon" "webhooks" {
    app = "${heroku_app.web.name}"
    plan = "deployhooks:http"
    config {
        url = "http://hooks.hashicorp.com/heroku"
    }
}

以上是一个使用Terraform来实际构建的例子,请在Terraform的网站上查看详细信息。

只需要一个选项, 其中 HashiCorp 进行了创建。

HashiCorp 会构建解决 DevOps 问题的技术且有趣的解决方案。在技术选择上,我们不取捷径并且重要的是,使用我们的工具并不意味着取得了经验上的捷径。Terraform 也不能代替。

Terraform 是我们构建的第五个工具,迄今为止我们提供了 Vagrant、Packer、Serf、Consul。虽然 Terraform 可以与我们的其他工具很好地配合使用,但并不一定需要进行协作。

更加详细

请在下面的页面中进行下一步操作。

Intro 導入

Comparison to other software 他のソフトとの比較
GitHub

在中文中仅需要一个选项给出以下的释义。

广告
将在 10 秒后关闭
bannerAds