แแแแแ แแแแฎแ แแ แแฎแแแ CLI แแแกแขแ แฃแแแแขแแก แจแแกแแฎแแ, แ แแแแแแช แแแแฌแแ แ แซแแแแ แแ แแแแแแแก แแแแแกแแญแ แแแแ.
แแ แแแแแแ
Terraform แแแแ แฎแแแแ แกแขแแแแแ แขแแ Devops/Cloud/IT แกแแแแแแแแแแแจแ. แแก แแ แแก แซแแแแแ แแแกแแฎแแ แฎแแแแแ แแ แแแแแกแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก, แ แแแแ แช แแแแแก แแแกแแแแแ แแแแแ. Terraform-แจแ แแแแ แ แกแแแแแแแแแแ, แแกแแแ แแแแ แ แฉแแแแแแ, แแแกแ แ แแแแแแ แแ แกแแแแแแกแแ.
Terraform-แแ แซแแแแแ แแแกแแฎแแ แฎแแแแแแ แแฎแแแ แแแแแแแแก แจแแฅแแแ แแ แจแแแแแ แแแแ แแแ แแแ, แจแแชแแแ แแ แฌแแจแแ. แ แ แฃแแแ แแแแแแแแก แแแ, แแแกแแช แฃแแแ แแแแแ แ แแแคแ แแกแขแ แฃแฅแขแฃแ แ แแฅแแก แฆแ แฃแแแแจแ แแ แแ แแ แแก แจแแฅแแแแแ Terraform-แแก แกแแจแฃแแแแแแ? แแแแแ แฆแ แฃแแแแก แฎแแแแฎแแ แแแฌแแ แ แแ แฎแแแแฎแแ แจแแฅแแแ แแแ แแแแฃแแฌแแแแ แซแแแ แ แแ แกแแฎแแคแแแแ.
แแ แจแแแฎแแแ แแก แแ แแแแแแ 2 แกแแแฃแจแแแแ, แฃแแแ แขแแแแกแ แแแแแแแแแ, แ แแชแ แแแแแ แ แแ แงแแแแแคแแ แ แแงแแก git แคแแ แแแจแ, แ แแแแ แช แขแแ แแคแแ แแฃแแ แคแแแแแแ, แแแแ แแ แแแฅแแก 250+ แแแแแฃแแแแ แแ แแแแ แแ แแแแ แฎแแแแ แขแแ แแคแแ แแแจแ แฉแแฌแแ แ.
แแ แกแแแแแก
แแแแแแแ, แงแแแแแคแแ แ แแกแแ แ แแแแ แช แกแฃแ แแแแ แแฎแแแแ แแแ แฏแแแแแแ แแแ แชแฎแแแ
แแแคแ แแฎแแแแแ: แแแขแแ แ แแแฎแแแแ แ แกแแชแแชแฎแแ แ แฃแกแแแจแ แแ แชแฎแแแ แแแก แแ แ แฃแกแฃแแแ แชแแขแแก แฌแแ แก. แฃแคแ แแฎแแแแแ แแ แแแแ แแคแแฃแ แจแแชแแแแแแก.
แแแแแฌแงแแแขแแแแแแแ
1. แแ แกแแแแแก AWS-แแก แแแ แแ แซแแแแ แแแแแฌแงแแแขแ
แ แแแแ แแฃแจแแแแก แขแแ แแคแแ แแแ แแแ: แแก แแฆแแแก แแแแแชแแแแแก AWS SDK-แแแ แแ แฅแแแแก tf แแ tfstate แจแแแแแแแก แแแจแแแแแแ.
แแฅ 3 แแ แแแแแแแ:
1. แงแแแแแแแแก แแฅแแแแ แจแแคแแ แฎแแแ แแแแแฎแแแแแแจแ
2. tf แคแแแแแแ แแแแฏแแ แแแขแแฎแแแ แแแแแแแก
3. tfstate แแ แแแแแแ tf-แกแแแ แแแแชแแแแแแแแแ แแ แงแแแแแแแแก แแ แแงแ แแก แแแแก
แแแแแแแ, แซแแแแแ แแกแแแ แจแแแแแแก แแแฆแแแ, แ แแแแแจแแช `แขแแ แแคแแ แแฃแแ แแแแแ~ แแแแแแก, แ แแ แชแแแแแแแแแ แแ แแ แแก
2. `terraform import` แแ แแก แฉแแจแแแแแฃแแ แแ แซแแแแแ terraform-แจแ. แฒ แแแแ แแฃแจแแแแก?
แแฅแแแ แฌแแ แ แชแแ แแแ TF แคแแแแก แ แแกแฃแ แกแแก แกแแฎแแแแ แแ แขแแแแ, แจแแแแแ แแแฃแจแแแ `terraform import` แแ แแแแแกแชแแแ แ แแกแฃแ แกแแก ID-แก. terraform แแแฃแแแแจแแ แแแแ แแ แแแแแแแ แก, แแฆแแแก แแแแแชแแแแแก แแ แฅแแแแก tfstate แคแแแแก.
แแฅ 3 แแ แแแแแแแ:
1. แฉแแแ แแแฆแแแ แแฎแแแแ tfstate แคแแแแก แแ tf แชแแ แแแแแ, แแฅแแแ แฃแแแ แแแฌแแ แแ แแก แฎแแแแ แแ แแแแแแงแแแแแ tfstate-แแแ
2. แจแแฃแซแแแ แแฎแแแแ แแ แแ แ แแกแฃแ แกแแ แแฃแจแแแแ แแ แแแ แแฃแแแ แแ แแ แฃแญแแ แก แแฎแแ แก แงแแแแ แ แแกแฃแ แกแก. แแ 250+ แแแแแฃแแก แแกแแ แ แ แแฅแแ?
3. แแฅแแแ แฃแแแ แแชแแแแ แ แแกแฃแ แกแแแแก ID - แแแฃ, แแฅแแแ แฃแแแ แจแแคแฃแแแ แแก แแแแแ, แ แแแแแแช แแแแฆแแแก แ แแกแฃแ แกแแแแก แฉแแแแแแแแแแก
แแแแแแแ, แจแแแแแ แแ แแก แแแฌแแแแแ แแแ แแ แแ แแ แแก แแแ แแแ แแแกแจแขแแแฃแ แ
แฉแแแ แแแแแฌแงแแแขแแแแแ
แแแแฎแแแแแแ:
1. แ แแกแฃแ แกแแแแกแแแแก tf แแ tfstate แคแแแแแแแก แจแแฅแแแแก แจแแกแแซแแแแแแแ. แแแแแแแแแ, แฉแแแแขแแแ แแแ แงแแแแ แแแแแฃแแแแ/แฃแกแแคแ แแฎแแแแแก แฏแแฃแคแ/แฉแแขแแแ แแแแก แแแแแแกแแ แ แแ แ แแ `แขแแ แแคแแ แแฃแแ แแแแแ` แแแแแ แฃแแ, แ แแ แชแแแแแแแแแ แแ แแ แแก
2. แแญแแ แแแแแ 2 GCP + AWS แฆแ แฃแแแแ
3. แแแแแแแฃแ แ แแแแแฌแงแแแขแ, แ แแแแแแช แแแแแแแ แแแแแฎแแแแแ แงแแแแ แฏแแ แแ แแ แแ แแแ แแแแก แแ แแก แแแแแแฃแ แ แแกแฃแ แกแแ 3 แแฆแแก แแฃแจแแแแแกแแแแก
4. แแแฎแแแ แฆแแ แฌแงแแ แ - แงแแแแแก แแฅแแก แแแแแ แแ แแแแแแ
Go แแแ แแแแขแแ แแแงแแแ แก, แ แแ แแแก แแฅแแก แแแแแแแแแแ HCL แคแแแแแแแก แจแแกแแฅแแแแแแ, แ แแแแแแช แแแแแแงแแแแแ แขแแ แแคแแ แแแจแ + แแแแ แ แแแแ แขแแ แแคแแ แแจแ, แ แแแแแแช แจแแแซแแแแ แกแแกแแ แแแแแ แแงแแก
แแแ
แแแ แแแแ แแชแแแแแแ
แแแแแฌแงแ แแแ แขแแแ แแแ แกแแแ. แฆแ แฃแแแแแแ แแแแแแจแแ แแแ SDK-แแก แกแแจแฃแแแแแแ แกแแญแแ แ แ แแกแฃแ แกแแกแแแแก แแ แแแกแ แแแแแฅแชแแแ แแแแแแแ แขแแ แแคแแ แแแกแแแแก. แแชแแแแแแ แแแจแแแแ แแแ แแแแชแแแแ แฃแกแแคแ แแฎแแแแแก แฏแแฃแคแแ, แ แแแแแ แแ แแแแแฌแแแ 1.5 แแฆแ แแฎแแแแ แฃแกแแคแ แแฎแแแแแก แฏแแฃแคแแก แแแแแแ แขแแชแแแกแแแแก (แแ แฃแแแ แแแ แ แแกแฃแ แกแแ). แแแแ แฎแแแก แแแแแแแแแแแจแ แแ แจแแแแแ แแแแแแแก แจแแชแแแ/แแแแแขแแแ แจแแแซแแแแ
แแแแ แ แแชแแแแแแ
แแฆแฌแแ แแ แแแแแแ แแแงแ แแแแแแ
แแฎแแ แแแแแ แแแแแแแแแ แ แแแฃแ แกแแฃแแ แแแ แแแแ แแคแแ tfstate-แกแแแแก tf-แแ แแแแแแงแแแแแก แแแฌแแ แแกแแแแก. แแแแแแแก, แแแกแแช แแ แแกแแแแก แฌแแฃแแแแฎแแแก tfstate, แแก แแ แแก JSON, แแแแ แแ แแแแกแแแฃแแ แแแฃแแ.
แแฅ แแ แแก แแแกแ แแแแจแแแแแแแแแ แแแฌแแแแก แแขแ แแแฃแขแแแ
"attributes": {
"id": "default/backend-logging-load-deployment",
"metadata.#": "1",
"metadata.0.annotations.%": "0",
"metadata.0.generate_name": "",
"metadata.0.generation": "24",
"metadata.0.labels.%": "1",
"metadata.0.labels.app": "backend-logging",
"metadata.0.name": "backend-logging-load-deployment",
"metadata.0.namespace": "default",
"metadata.0.resource_version": "109317427",
"metadata.0.self_link": "/apis/apps/v1/namespaces/default/deployments/backend-logging-load-deployment",
"metadata.0.uid": "300ecda1-4138-11e9-9d5d-42010a8400b5",
"spec.#": "1",
"spec.0.min_ready_seconds": "0",
"spec.0.paused": "false",
"spec.0.progress_deadline_seconds": "600",
"spec.0.replicas": "1",
"spec.0.revision_history_limit": "10",
"spec.0.selector.#": "1",
แฒแฅ แแ แแก:
1. id - แกแขแ แแฅแแแ
2. แแแขแแแแแแชแแแแแ - 1 แแแแแก แแแกแแแ แแ แแแกแจแ แแแแแฅแขแ แแแแแแแ, แ แแแแแแช แแฆแฌแแ แแแแ แฅแแแแแ
3. spec - แฐแแจแ 1 แแแแแก แแ แแแกแแฆแแแ, แแแแจแแแแแแแ แแแกแจแ
แแแแแแ, แกแแฎแแแแกแ แคแแ แแแขแ, แงแแแแแคแแ แ แจแแแซแแแแ แ แแแแแแแแ แแแแแแ แแงแแก แฆแ แแ
"spec.#": "1",
"spec.0.min_ready_seconds": "0",
"spec.0.paused": "false",
"spec.0.progress_deadline_seconds": "600",
"spec.0.replicas": "1",
"spec.0.revision_history_limit": "10",
"spec.0.selector.#": "1",
"spec.0.selector.0.match_expressions.#": "0",
"spec.0.selector.0.match_labels.%": "1",
"spec.0.selector.0.match_labels.app": "backend-logging-load",
"spec.0.strategy.#": "0",
"spec.0.template.#": "1",
"spec.0.template.0.metadata.#": "1",
"spec.0.template.0.metadata.0.annotations.%": "0",
"spec.0.template.0.metadata.0.generate_name": "",
"spec.0.template.0.metadata.0.generation": "0",
"spec.0.template.0.metadata.0.labels.%": "1",
"spec.0.template.0.metadata.0.labels.app": "backend-logging-load",
"spec.0.template.0.metadata.0.name": "",
"spec.0.template.0.metadata.0.namespace": "",
"spec.0.template.0.metadata.0.resource_version": "",
"spec.0.template.0.metadata.0.self_link": "",
"spec.0.template.0.metadata.0.uid": "",
"spec.0.template.0.spec.#": "1",
"spec.0.template.0.spec.0.active_deadline_seconds": "0",
"spec.0.template.0.spec.0.container.#": "1",
"spec.0.template.0.spec.0.container.0.args.#": "3",
แแแแแแแ, แแฃ แแแแแแก แฃแแแ แแแขแแ แแแฃแกแแแแก แแ แแแ แแแแ แแแแก แแ แแแแแแ, แฃแแ แแแแ แกแแฎแแแแ แแแฌแแ แแก แแ แแแแชแแแแกแแแแก แแแ แกแแ แ :)
แแ แแแแแ แแชแแแแแแแก แจแแแแแ, แแแแแฌแแ แ แแแ แกแแ แ แจแแชแแแแแแแก แแแ แแจแ, แแแกแ แแแฌแแแ แแแแแแ แขแแ แแคแแ แแฃแ แแแแจแ แแ แงแแแแแแ แแแแจแแแแแแแแแ แแแฌแแแ. แแ แแแแฅแแก แงแแแแแคแแ แ แแแ แแแ แแฃแจแแแแแ
แชแแ แกแแแ
terraform แแ แแแแแแแ แแแ แแ แแก แแแแแ แแแ, แ แแแแแแแช แจแแแชแแแก แแแแก แงแแแแ แ แแกแฃแ แกแแ แแ แแแแแแแ แฆแ แฃแแแแแแแ API-แกแแแ แแฃแจแแแแแกแแแแก. แแแแแแฃแ แฆแ แฃแแแแก แแฅแแก แกแแแฃแแแ แ แแ แแแแแแแ แ แแ แแแแแ แขแแ แแคแแ แแ แแแ แแฎแแแแ แแแแแกแ RPC แแ แแขแแแแแแ แฃแฌแแแแแก แแ แแ แแชแแกแก แจแแ แแก.
แแฎแแ แแแแแแฌแงแแแขแ แแแแแแจแแ แแแ แขแแ แแคแแ แแแก แแ แแแแแแแ แแแแแ แแแ แแแแแ RPC แแแ แแแแก แกแแจแฃแแแแแแ. แแจแแแแแแ แแ แแแแแแแแ แแ แจแแกแแซแแแแแแ แแแฎแแแ แขแแ แแคแแ แแแก แแ แแแแแแแ แแแแก แแฎแแแแ แจแแชแแแ แแ แแฎแแแ แคแฃแแฅแชแแแแแก แแแฆแแแ แแแแแก แจแแชแแแแก แแแ แแจแ. แแกแแช แแแแแแแก, แ แแ tfstate-แจแ แงแแแแ แแแแ แแ แฃแแแ แแงแแก tf-แจแ, แแแแ แแ แ แแแแ แจแแแซแแแแ แแแแก แแแ แแแแแ? แฃแแ แแแแ แฐแแแแฎแแ แแฅแแแแก แแ แแแแแแแ แก แแแแก แจแแกแแฎแแ. แจแแแแแ แแแแฌแงแ แ แแแฃแแแ แฃแแ แแแแแแแแฅแแแแแแแก แแฌแงแแแแก แแแแแ แแ แแ แ แแแฃแ แกแแฃแแ แแแ แแแแ แแคแแ, แ แแแแแแช แแซแแแแ แแแแแแก tfstate-แจแ แงแแแแ แแแแแแ แกแแฆแ แแแกแแฃแแแ.
แกแแแแแแ แฏแแแจแ, แฉแแแ แแแแแฆแแ แกแแกแแ แแแแแ CLI แแแกแขแ แฃแแแแขแ, แ แแแแแกแแช แแฅแแก แกแแแ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ แงแแแแ แขแแ แแคแแ แแแก แแ แแแแแแแ แแกแแแแก แแ แแฅแแแ แจแแแแซแแแแ แแแ แขแแแแ แแแแแแขแแ แแฎแแแ. แแกแแแ, แ แแกแฃแ แกแแแแก แแแแแขแแแแก แแชแแ แ แแแแ แกแญแแ แแแแ. แแแฃแก แงแแแแ แกแแฎแแก แกแแแแแ, แ แแแแ แแชแแ แแแแจแแ แแแ แ แแกแฃแ แกแแแก แจแแ แแก. แ แ แแฅแแ แฃแแแ, แแงแ แแ แแแแแ แแแแกแฎแแแแแแฃแแ แแ แแแแแแ, แ แแแแแแ แแฆแฌแแ แ แจแแฃแซแแแแแแแ.
แชแฎแแแแแก แขแแ แแคแแแแ แ แแแแแ แฅแแ.
แกแแแแแแ
Terrafomer-แแก แแแแแงแแแแแแ แแ แ แฆแ แฃแแแแแแ แจแแแฅแแแแแ tf + tfstate แแแแแก 500-700 แแแแกแ แฎแแแ. แฉแแแ แจแแแซแแแแ แแแแแแแแ แแแแแแ แแแแแแแแก แแฆแแแ แแ แแแแแแ แจแแฎแแแ แแฎแแแแ แขแแ แแคแแ แแแก แกแแจแฃแแแแแแ, แ แแแแ แช แกแแฃแแแแแกแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ, แ แแแแ แช แแแแแก แแแแแแ. แฃแแ แแแแ แฏแแแแกแแฃแ แแ, แ แแชแ แแฆแแแ แฃแแแ แแแแแ แฆแ แฃแแแแก แแ แแฆแแแ แแแก แแฃแแแแก แแแจแแแแแแ แขแแ แแคแแ แแฃแแ แแฃแจแ แคแแแแแแแก แกแแฎแแ. แแ แจแแแแแ grep/replace/git แแ แแกแ แจแแแแแ.
แแแแแแแ แชแฎแแ แแ แแแแแแแแ, แแแแแ แแแ แแแแฆแ. แแแแแแแแ GitHub-แแ แงแแแแแกแแแแก แฎแฃแแจแแแแแก (02.05.19/XNUMX/XNUMX).
แฃแแแ แแแฆแแแฃแแแ 600 แแแ แกแแแแแแ, 2 pull แแแแฎแแแแ openstack-แแกแ แแ kubernetes-แแก แแฎแแ แแแญแแ แแก แแแกแแแแขแแแแแ. แแแ แแ แแแแแฎแแแฃแ แแแ. แแแแแแแ, แแ แแแฅแขแ แกแแกแแ แแแแแแ แฎแแแฎแแกแแแแก
แแฃแ แฉแแ แงแแแแแก, แแแกแแช แกแฃแ แก แแแแฌแงแแก แแฃแจแแแแ Terraform-แแแ แแ แแ แแแแแฌแแ แแก แงแแแแแคแแ แ แแแแกแแแแก.
แกแแแแแแแแแแ แแแแแแแขแแ แแฎแแแแแแก, แกแแแแแฎแแแก, แแแ แกแแแแแแแแก.
แแแแ
แฌแงแแ แ: www.habr.com