BETA

Terraform Cloud を早速使ってみました

投稿日:2019-09-14
最終更新:2019-09-14

Terraform Cloud

関連URL

とりあえずのお試し

Classmethod さんの記事をそのまま試してみました。

Terraform アカウントの作成

VCS との連携

HCL をGitHub へPUSHする

Workspace という処理単位ごとにリポジトリを割り当てていくことになります

main.tf という名前で以下のファイルを作成し、リポジトリへPUSHしてください
以下の例は、AWS 上に新しいVPCを一つ作成する定義となります

variable "aws_access_key" {}  
variable "aws_secret_key" {}  

provider "aws" {  
  access_key = var.aws_access_key  
  secret_key = var.aws_secret_key  
  region = "ap-northeast-1"  
}  

resource "aws_vpc" "test-vpc" {  
    cidr_block = "10.0.0.0/16"  
    tags = {  
        Name = "test-vpc"  
    }  
}  

Terraform 環境変数にAWS のアクセス情報を登録する

GitHubに登録したHCLの変数で空欄となっているアクセスキーとシークレットキーをTerraform の環境変数(terraform.tfvars) へ登録します

これで、HCLに直接AWSのキー情報を書くことなく、処理ができます

実行する(Plan:DRY RUN)

左上のQueue planからまず、plan 実行します
実行結果(AWSへのアクセスは行われません)

実行する(Apply:クラウド基盤へプロビジョニング)

Confirm & ApplyでAWS上にリソース作成を行います
エラーとなると以下のような通知が出ます

AWS上でのリソース作成が成功すると次のような表示となります

AWS上にVPCが作成されています

tfstate の確認

メニューバーの States で確認します

実行した処理を選択すると、tfstate の情報が参照できます
ID等は、マスクしてあります

{  
  "version": 4,  
  "terraform_version": "0.12.8",  
  "serial": 1,  
  "lineage": "99999999999-8f7b-0b55-bb96-xxxxxxxxxx,  
  "outputs": {},  
  "resources": [  
    {  
      "mode": "managed",  
      "type": "aws_vpc",  
      "name": "test-vpc",  
      "provider": "provider.aws",  
      "instances": [  
        {  
          "schema_version": 1,  
          "attributes": {  
            "arn": "arn:aws:ec2:ap-northeast-1:99999999999:vpc/vpc-09999999999efeb96",  
            "assign_generated_ipv6_cidr_block": false,  
            "cidr_block": "10.0.0.0/16",  
            "default_network_acl_id": "acl-09999999999999999",  
            "default_route_table_id": "rtb-0999999999999999",  
            "default_security_group_id": "sg-999999999999",  
            "dhcp_options_id": "dopt-99999999999",  
            "enable_classiclink": false,  
            "enable_classiclink_dns_support": false,  
            "enable_dns_hostnames": false,  
            "enable_dns_support": true,  
            "id": "vpc-0899999999999999",  
            "instance_tenancy": "default",  
            "ipv6_association_id": "",  
            "ipv6_cidr_block": "",  
            "main_route_table_id": "rtb-09999999999",  
            "owner_id": "99999999999999",  
            "tags": {  
              "Name": "test-vpc"  
            }  
          },  
          "private": "9999999999999999999"  
        }  
      ]  
    }  
  ]  
}  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう