Terraform
これは、なにをしたくて書いたもの? Terraformのコードを書く時はIntelliJ IDEAのTerraform and HCL Pluginを使っていたのですが、Emacsに寄せようかなと思いまして。 LSPを使います。 terraform-mode+lsp-mode+terraform-ls EmacsでLSPを使うにはlsp-mod…
これは、なにをしたくて書いたもの? KeycloakでRealmやユーザーを定義するのにWeb UIを使えますが、何度も同じことを操作するのはやや面倒ですし、やり方を忘れます。 管理CLIでも操作できますが、できればリソース定義のような形でやれたらと思うものです…
これは、なにをしたくて書いたもの? Terraformを使うと、terraform init時に使用するProviderをダウンロードしてくるのですが、これをそれぞれのディレクトリで行っていると 各ルートモジュール配下の.terraformディレクトリのサイズの合計がだんだん無視で…
これは、なにをしたくて書いたもの? Terraform 1.6でtesting frameworkが追加されたので、以前に試してみました。 Terraform 1.6で追加されたTerraform testing framework(terraform test)を試す - CLOVER そしてTerraform 1.7ではこれにモックが追加され…
これは、なにをしたくて書いたもの? Terraformには、nullというプロバイダーがあります。 null_resource null Providerにはnull_resourceというリソースが含まれており、こちらを使うことで他のリソースの状態変化に合わせてコマンドを 実行させたりできて…
これは、なにをしたくて書いたもの? Terraform 1.6で、Terraformのtesting framework(terraform testコマンド)が追加されたようなので、試してみようかなと。 Terraform 1.6 adds a test framework for enhanced code validation 今までTerraformのテスト…
これは、なにをしたくて書いたもの? Severless Frameworkのserverless.ymlでAWS Systems Manager Parameter Storeの値を参照できるみたいなので、試してみることに しました。 合わせて、AWS Lambda関数内からAWS Systems Manager Parameter Storeを参照す…
これは、なにをしたくて書いたもの? TerraformのProviderを見ていると、Sonatype Nexus用のProviderがあったのでちょっと試してみたいなと。 Nexus Provider Nexus Provider Sonatype NexusのTerraform Providerです。 Nexus Provider リポジトリーの定義な…
これは、なにをしたくて書いたもの? 前に、Amazon SQS(といってもLocalStack上のものですが)を使ってFIFOキューを試してみました。 LocalStackでAmazon SQSのFIFOキューを試してみる(AWS SDK for Javaを使用) - CLOVER 今回は、常駐アプリケーションと…
これは、なにをしたくて書いたもの? ElasticMQを使っていきたいと思うのですが、リソース定義をTerraformで行えないかなと思いまして。 結果を見ると、できるにはできるのですがちょっと難ありです。 ElasticMQ ElasticMQは、Amazon SQS互換のインターフェ…
これは、なにをしたくて書いたもの? AWS Lambdaで使える、フレームワークをちょっと試してみたいなと思いまして。 Serverless Expressというものがあるみたいなので、ちょっと試してみることにしました。 Serverless Express Serverless ExpressのGitHubリ…
これは、なにをしたくて書いたもの? 以前に、LocalStackでAmazon API Gateway+AWS Lambdaを動かしてみるエントリを書きました。 LocalStackでAmazon API Gateway+AWS Lambdaを動かしてみる - CLOVER 今回は、こちらをTerraformで実現できないかなと思いま…
これは、なにをしたくて書いたもの? 自分はTerraformやVagrantなど、HashiCorp製品をそれなりに使っているのですが、いつもzipなりdebなりで インストールしていました。 ですが、最近Terraformのドキュメントにaptやyumリポジトリに関するドキュメントが増…
これは、なにをしたくて書いたもの? Terraformに対するテストコードを書くのに、Terratestというものが使えるというようなので。 こちらを試してみようかな、と。 Terratest Terratestとは、インフラストラクチャーをテストするためのパターン、ヘルパー関…
これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。今回でひと区切りの予定です。 最後は、Terragruntを使って複数のTerraformモジュールの操作を1回のコマンド実行で行ってみます。 Terragruntで、Terraformモジュールの操作を1度に行う Terra…
これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。 今回は、Terragruntを使って環境ごとに作るTerraformの構成ファイルを減らしてみます。 Terragruntで、環境ごとの構成ファイルを減らす Terraformを使って、複数の環境を構築、管理するのに…
これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。 次は、Terragruntを使ってTerraform実行時の引数やオプション指定をまとめてみます。 Terragruntで、Terraform実行時の引数やオプション指定をまとめる Terraformを実行する時に、引数やオプ…
これは、なにをしたくて書いたもの? 前に、Terragruntを使ってTerraform Backendの定義をまとめてみました。 TerragruntをUbuntu Linux 20.04 LTSにインストールして、Terraform Backendの定義をまとめてみる - CLOVER 今度は、Providerの定義をまとめてみ…
これは、なにをしたくて書いたもの? Terraformを使うの時にTerragrantというラッパーを使うと便利、みたいな話があるようなので少し試してみようかなと。 Terragrunt | Terraform wrapper Terragrunt TerragruntとはGruntworkが作成しているTerraformのラッ…
これは、なにをしたくて書いたもの? Terraformのコレクションが、単一のデータ型のみが格納可能だということを、ちゃんと把握できていなかったのでメモとして。 Type Constraints - Configuration Language - Terraform by HashiCorp 平たく言うと、anyを勘…
これは、なにをしたくて書いたもの? Terraformで、同じ種類のProviderであってもエイリアスを使って異なる構成のProviderとして定義し、適用するリソースや モジュールに応じてどのProviderを使うか選択することができます。 Provider Configuration / alia…
これは、なにをしたくて書いたもの? Terraformのprovidersというコマンドにちょっと興味があったので、調べてみようかと。 terraform providersコマンド providersと言っているのは、terraformに含まれるコマンドです。 Command: providers - Terraform by …
たとえば、Terraformで外部モジュールをGitリポジトリで参照している場合を考えます。 Module Sources / Generic Git Repository module "vpc" { source = "git::https://example.com/vpc.git" } module "storage" { source = "git::ssh://username@example.…
これは、なにをしたくて書いたもの? Terraformを使っていると、自分でモジュールを作ることがあります。 最初は、自前のルートモジュール内にサブモジュールを作り、こんな感じで使うのだと思います。 module "my_module" { source = "./modules/my_module"…
これは、なにをしたくて書いたもの? Terraformでcountを使っていた時にこんなエラーに当たったので、「これはなんだろう?」と思い。 The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predi…
これは、なにをしたくて書いたもの? Terraformを使っていて、 output "xxx" { value = resource_a.this.xxx } output "yyy" { value = resource_a.this.yyy } output "zzz" { value = resource_a.this.zzz } ... といった感じで、あるリソースやモジュール…
これは、なにをしたくて書いたもの? 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のドキュメントで、リソースについて書かれているページを見てみます。 Resources - Configu…
これは、なにをしたくて書いたもの? Terraformでリソースを作るにあたり、条件によって作る・作らないをコントロールしたいなと。 解法としては繰り返しを使うみたいなのですが、自分でちゃんと追ってみましょうか、と。 環境とお題 今回の環境は、こちら。…
これは、なにをしたくて書いたもの? TerraformリソースのLyfecycleのカスタマイズした時の動きを、1度自分でも確認しておきたいなということで。 TerraformのMeta Arguments Terraformのリソース定義には、Meta Argumentsと呼ばれる引数を含めることができ…