CLOVER🍀

That was when it all began.

Terraform

Terraformで、参照している外部モジュールを強制的に再取得する

たとえば、Terraformで外部モジュールをGitリポジトリで参照している場合を考えます。 Module Sources / Generic Git Repository module "vpc" { source = "git::https://example.com/vpc.git" } module "storage" { source = "git::ssh://username@example.…

Terraformで使う外部モジュールが、内部でサブモジュールを使用していた場合の挙動を確認する

これは、なにをしたくて書いたもの? Terraformを使っていると、自分でモジュールを作ることがあります。 最初は、自前のルートモジュール内にサブモジュールを作り、こんな感じで使うのだと思います。 module "my_module" { source = "./modules/my_module"…

Terraformのcount、for_eachに作成前のリソースの情報を指定できないという話

これは、なにをしたくて書いたもの? Terraformでcountを使っていた時にこんなエラーに当たったので、「これはなんだろう?」と思い。 The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predi…

TerraformでリソースやモジュールのOutputを一括で設定する

これは、なにをしたくて書いたもの? Terraformを使っていて、 output "xxx" { value = resource_a.this.xxx } output "yyy" { value = resource_a.this.yyy } output "zzz" { value = resource_a.this.zzz } ... といった感じで、あるリソースやモジュール…

GitLabをTerraformのStateの保存先として使う

これは、なにをしたくて書いたもの? GitLab 13.0で、TerraformのStateのバックエンドとして利用できるようになったというのを見かけまして。 GitLab 13.0 released with Gitaly Clusters, Epic Hierarchy on Roadmaps, and Auto Deploy to ECS / GitLab HTT…

Terraformリソース間の依存関係を確認する

これは、なにをしたくて書いたもの? Terraformのリソース間の依存関係について、ちゃんと学んでおきたいなと思いまして。 リソース間の依存関係について Terraformのドキュメントで、リソースについて書かれているページを見てみます。 Resources - Configu…

Terraformで、リソースを作成する・しないをコントロールしたい

これは、なにをしたくて書いたもの? Terraformでリソースを作るにあたり、条件によって作る・作らないをコントロールしたいなと。 解法としては繰り返しを使うみたいなのですが、自分でちゃんと追ってみましょうか、と。 環境とお題 今回の環境は、こちら。…

TerraformリソースのLifecycleのカスタマイズを行う

これは、なにをしたくて書いたもの? TerraformリソースのLyfecycleのカスタマイズした時の動きを、1度自分でも確認しておきたいなということで。 TerraformのMeta Arguments Terraformのリソース定義には、Meta Argumentsと呼ばれる引数を含めることができ…

TerraformでRemote Stateを参照して、Data Sourceとして扱う

これは、なにをしたくて書いたもの? TerraformのRemote Stateを参照することで、Data Sourceとして扱えるらしいので、試してみることにしました。 Remote StateをData Sourceとして使う Remote Stateは、デフォルトではローカルに保存されるStateを、別のリ…

Terraformのgraphコマンドで、構成を可視化してみる

これは、なにをしたくて書いたもの? Terraformのリソースの依存関係を出力できないのかな?と思ったのですが、terraform graphコマンドでGraphvizのdot形式で出力可能な ようなので、1度試してみることにしました。 Command: graph - Terraform by HashiCor…

Terraformモジュールのインスタンスとリソースのスコープを確認したい

これは、なにをしたくて書いたもの? Terraformのモジュールというものを、この前初めて書いてみたのですが、同じリソース定義を別のモジュールに含めた時に、 どういう動きになるのかな?というのを確認してみたいと思いまして。 いろいろ、バリエーション…

TerraformのData Sourceを試す

これは、なにをしたくて書いたもの? TerraformのData Sourceを使ってみよう、ということで。 Data Source Terraformには、Data Sourceというものがあります。Data Sourceは、外部データを参照できる仕組みです。 Data Sources - Configuration Language - T…

Terraformのモジュールを書いてみる

これは、なにをしたくて書いたもの? Terraformのモジュールというものを、1度自分で書いてみようかな、と。 練習ですね。 Terraform Module Terraformのモジュールは、複数のリソースをまとめて抽象化したものです。 Creating Modules - Terraform by Hashi…

TerraformのStateをConsulで管理する

これは、なにをしたくて書いたもの? TerraformのStateについてちゃんとドキュメントを読んでいなかったので、1度確認しておこうということと、Stateをローカルファイル以外で 管理する方法もあるらしいので、そちらも見てみようかなということで。 今回は、…

TerraformでNode.js+PostgreSQLなアプリケーションをHerokuにデプロイする

これは、なにをしたくて書いたもの? Terraformの勉強にと、Herokuを使って、アプリケーションとデータベースをデプロイする超簡単な例を作って試してみようと。 お題 Herokuのフリープランで利用可能なPostgreSQLを使い、以下のサンプルとほぼ同等なアプリ…

TerraformでアプリケーションをHerokuにデプロイしてみる

これは、なにをしたくて書いたもの? Terraformの勉強がてら、どこか適当にリソースをデプロイ可能なProviderはないかな?と思っていたところ、HerokuのProviderが あったので、こちらで少し遊んでみようと。 Provider: Heroku - Terraform by HashiCorp お…

Ubuntu Linux 18.04 LTSにTerraformをインストールする

ちょっとTerraformが気になっているので、試しにとインストールして触ってみることにしました。 Terraform by HashiCorp Terraform? そもそも、Terraformとはなんでしょう? オフィシャルサイトによると、インフラをコードで定義し、リソースを作成したり変…