あなたがremote state backendを使用していると仮定すると、あなたはremote state data sourceとしてOPSのネットワークスタックに引き、その後、あなたはそれになりたい方はかないスタックからそのルーティングテーブルに変更を加えることができますにルーティングすることができます。
は、(明らかにボイラープレートの多くが欠落しているもの)を、最小限の例を試してみてくださいウィル:
# Run in the same folder as my_ops_stack.tf
terraform remote config \
-backend=s3 \
-backend-config="bucket=my-state-bucket" \
-backend-config="key=ops-stack/terraform.tfstate" \
-backend-config="region=eu-west-1"
:テラフォームのCLI(
this will soon be possible in config)を使用して
# my_ops_stack.tf
provider "aws" {
region = "eu-west-1"
}
module "ops_stack" {
source = "/my/modules/ops_stack"
cidr = "10.1.0.0/16"
// other vars probably
}
// the outputs which will be accessible
// via the remote state data source:
output "routing_table_id" {
value = "${module.ops_stack.routing_table_id}"
}
output "vpc_id" {
value = "${module.ops_stack.vpc_id}"
}
output "vpc_cidr" {
value = "10.1.0.0/16"
}
私はよ今configureこのスタック用のリモート状態のバックエンド
terraform apply
# the usual stuff... but now synced with s3!
:あなたはスタックに適用
今の状態のバックエンドが設定されている、すべての変更は、そのバックエンドに同期します 今
、新しい一時的なスタック(DEV、PROD、QA、STG、UAT、CTEなど)のテンプレートで:あなたは短命スタックで完了したら
# my_dev_stack.tf
provider "aws" {
region = "eu-west-1"
}
// Pull in your ops stack from the remote backend:
data "terraform_remote_state" "ops_stack" {
backend = "s3"
config {
bucket = "my-state-bucket"
key = "ops-stack/terraform.tfstate"
region = "eu-west-1"
}
}
// Create your dev stack
module "dev_stack" {
source = "/my/modules/dev_stack"
cidr = "10.2.0.0/16"
// The ops_stack vpc id for creating the peering connection:
ops_vpc_id = "${data.terraform_remote_state.ops_stack.vpc_id}"
// Maybe some security group rules you wanna setup
allow_access_from = "${data.terraform_remote_state.ops_stack.vpc_cidr}"
// other vars probably
}
// And use its outputs to add a route to the
// ops vpc routing table from the dev stack!
resource "aws_route" "ops_to_dev" {
route_table_id = "${data.terraform_remote_state.ops_stack.routing_table_id}"
destination_cidr_block = "10.2.0.0/16" // dev_stack's cidr
vpc_peering_connection_id = "${module.dev_stack.vpcx_id}"
}
、あなたは安全に破壊することができますそれはopsスタックのルートをクリーンアップします。
これはあなたの後ろだったのですか?