Code Monkey home page Code Monkey logo

terraform's Introduction

terraform

terraform プロバイダーとは

terraform プロバイダーとは特定のクラウドサービスのHTTP APIを呼び出すコンポーネント

.tf, .tf.json で終わるどのファイルにも定義できるが、ベストプラクティスはproviders.tf, require_providers.tfという名前のファイルに定義する。

Terraform での変数を理解する

var. という構文で変数を使用できる。 一般的にはvariables.tfとい名前の別ファイルに宣言する。

Terraformのワークフローを完成させるためには、これらの変数が値を取得する必要があります。 Terraformが変数を取得する方お方は4つあります。

  1. Terraformの環境変数に変数値を定義する方法。 TF_VAR_ で始まり、宣言された変数名が続く環境変数の値を探してきてくれます。
$ export TF_VAR_rgname=example-rg
  1. ファイルに定義する。 terraform.tfvars または terraform.tfvars.jsonというデフォルトでサポートされているファイルか、.auto.tfvarsまたは.auto.tfvars.json で終わるファイル名に変数の値を格納できます。
rgname = "Terraform-rg"
rgloccation = "WQest Europe"
idle_timeout_in_minutes = 10
...

デフォルトでサポートされていないファイル名:testing.tfvarsのようなファイルに入力変数を定義する場合は、Terraformコマンド実行時に

terraform apply -var-fiile="testing.tfvars"

のように、ファイル名を明示的に指定する必要があります。

  1. コマンド実行時に指定する方法 main.tf や variables.tf で変数を定義し、その入力値がない場合、実行時にそれぞれの変数値を提供するようプロンプトが表示されまs。
terraform plan
var.rglocation
Resource Group location like West Europe etc.
Enter a value:
  1. 変数を宣言する際にデフォルト値(default)として変数値を直接定義することです。
variable "rgname" {
  description = "リソースグループの名称を指定します。"
  type = string
  default = "example-rg"
}

メモ: variable.tf は「こんな変数を使いたいです。」的な宣言を行う場所(デフォルト値も設定できる)。 .tfvars は「変数にはこの値を渡したいです。」的な変数に値を指定する場所。

Terraform のデータソーズを理解する

Terraformにおけるdata sourceは、既存のリソースや外部の情報源からデータを読み取るための機能です。

AWSでのTerraformデータソースの例 既存のAWS VPCにサブネットを作成したい場合。

variable "vpc_id" {}

data "aws_vpc" "example" {
  id = var.vpc_id
}

resource "aws_subnet" "example" {
  vpc_id = data.aws_vpc.example.id
  availability_zone = "us-west-2a"
  cidr_block = cidrsubnet(data.aws_vpc.example.cider_block, 4, 1)
}

terraform's People

Contributors

hibi6toshi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.