Docker Hub に terraform の image があったので使ってみた。
Docker Hub に terraform の image があったので使ってみた。:
インフラ構成をコードで管理できる terraform ですが、
Docker Hub に image があったので使ってみることにしました。
今回はとりあえず s3 を作ってみることにします。
HCLのシンタックスハイライト効くようにしてほしい...。
credentials は環境変数から読ませるので省略しています。
本記事とはあまり関係ないですが
強制的に削除できるようにするオプションです。
今回は有効にしときます。
コンテナにホストマシンが持っている tf ファイルの情報を与えてあげる必要があるので、
オプションに
https://github.com/hashicorp/docker-hub-images/tree/master/terraform
同様に credentials をコンテナに注入します。
試してないですが
無事、bucket の作成に成功しました。
インフラ構成をコードで管理できる terraform ですが、
Docker Hub に image があったので使ってみることにしました。
今回はとりあえず s3 を作ってみることにします。
example.tf
provider "aws" {} resource "aws_s3_bucket" "example" { bucket = "my-bucket" force_destroy = true }
credentials は環境変数から読ませるので省略しています。
本記事とはあまり関係ないですが
force_destroy
は bucket にファイルが残っていても、強制的に削除できるようにするオプションです。
今回は有効にしときます。
terraform init
$ docker run -it -v $PWD:/app/ -w /app/ hashicorp/terraform:light init
init
は terraform プロジェクトをイニシャライズするコマンドです。コンテナにホストマシンが持っている tf ファイルの情報を与えてあげる必要があるので、
オプションに
-v $PWD:/app/ -w /app/
を指定する必要があります。https://github.com/hashicorp/docker-hub-images/tree/master/terraform
terraform plan
$ docker run -e AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY \ -e AWS_DEFAULT_REGION \ -it -v $PWD:/app/ -w /app/ \ hashicorp/terraform:light plan
試してないですが
$AWS_PROFILE
でもいけると思います。
terraform apply
$ docker run -e AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY \ -e AWS_DEFAULT_REGION \ -it -v $PWD:/app/ -w /app/ \ hashicorp/terraform:light plan
結果
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: + aws_s3_bucket.example id: <computed> acceleration_status: <computed> acl: "private" arn: <computed> bucket: "my-bucket" bucket_domain_name: <computed> bucket_regional_domain_name: <computed> force_destroy: "true" hosted_zone_id: <computed> region: "ap-northeast-1" request_payer: <computed> versioning.#: <computed> website_domain: <computed> website_endpoint: <computed> Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes aws_s3_bucket.example: Creating... acceleration_status: "" => "<computed>" acl: "" => "private" arn: "" => "<computed>" bucket: "" => "my-bucket" bucket_domain_name: "" => "<computed>" bucket_regional_domain_name: "" => "<computed>" force_destroy: "" => "true" hosted_zone_id: "" => "<computed>" region: "" => "ap-northeast-1" request_payer: "" => "<computed>" versioning.#: "" => "<computed>" website_domain: "" => "<computed>" website_endpoint: "" => "<computed>" aws_s3_bucket.example: Creation complete after 2s (ID: my-bucket) Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
コメント
コメントを投稿