Terrafrom運用の細かい操作まとめ
はじめに
Terraform cloudいいですね。tfstateのbackendをs3からTerrafrom cloudに移動している中でmoduleもリファクターとTerrafrom管理をしていなかったリソースのコード化も進めているのですが、そこで使用しているコマンドを備忘録的にまとめておきます。
環境
- terraform v1.0.8
- terraform-provider-aws v3.0.0
リソースをimportする
すでにリソースをコンソールから作成済みだけど、その作成済みのリソースもterrafromで管理した場合にリソースの状態をtfstateにimportします。
- moduleを使っていないケース
resource "aws_ecr_repository" "hog" {
省略
}
$ terraform import aws_ecr_repository.hog xxx-api
- moduleを使っているケース
module "ecr_module" {
省略
}
$ terraform import module.ecr_module.aws_ecr_repository.hog xxx-api
- main.tfに複数リソースを定義しいる場合
importコマンドを別々に実行することでtfstateに追加していってくれます。
resource "aws_ecr_repository" "hog" {
省略
}
resource "aws_lambda_function" "hog" {
省略
}
$ terraform import aws_ecr_repository.hog xxx-api
$ terraform import aws_lambda_function.hog xxx-function
リソース名を変更する
リファクター、タイポなどを発見してリソース名を変更したい時にリソース名を変えただけでterraform apply
するとdestroyされてリソースが再作成されてしまします。
これではRDSなどは大問題になります。
そこでterraform state mv
コマンドでtfstateのリソース名を修正します。
resource "aws_ecr_repository" "hog" {
省略
}
// 上記を以下に変更
resource "aws_ecr_repository" "fuga" {
省略
}
- moduleを使っていないケース
$ terraform state mv aws_ecr_repository.hog aws_ecr_repository.fuga
- moduleを使っているケース
module "ecr" {
省略
}
$ terraform state mv module.ecr.aws_ecr_repository.hog module.ecr.aws_ecr_repository.fuga
Author And Source
この問題について(Terrafrom運用の細かい操作まとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/Yoyo-kikuchi/items/142eeaa9a85ed45c800e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .