Terraformer - Infrastructure To Code
แƒ›แƒ˜แƒœแƒ“แƒ แƒ’แƒ˜แƒ—แƒฎแƒ แƒแƒ— แƒแƒฎแƒแƒšแƒ˜ CLI แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒซแƒ•แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“.

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ

Terraform แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒแƒœแƒ˜แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜แƒ Devops/Cloud/IT แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒกแƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒšแƒแƒ“. Terraform-แƒจแƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒแƒ, แƒแƒกแƒ”แƒ•แƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฉแƒแƒœแƒ’แƒแƒšแƒ˜, แƒ‘แƒแƒกแƒ แƒ˜ แƒ“แƒแƒœแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒแƒ™แƒแƒ›แƒ˜แƒกแƒ˜แƒ.
Terraform-แƒ˜แƒ— แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒฎแƒแƒšแƒ˜ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒ แƒ—แƒ•แƒ, แƒจแƒ”แƒชแƒ•แƒšแƒ แƒแƒœ แƒฌแƒแƒจแƒšแƒ. แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒ›แƒแƒ—, แƒ•แƒ˜แƒกแƒแƒช แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒแƒฅแƒ•แƒก แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜ แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ Terraform-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—? แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒซแƒ•แƒ˜แƒ แƒ˜ แƒ“แƒ แƒกแƒแƒฎแƒ˜แƒคแƒแƒ—แƒแƒ.
แƒ›แƒ” แƒจแƒ”แƒ›แƒฎแƒ•แƒ“แƒ แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ 2 แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ–แƒ”, แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ, แƒ แƒแƒชแƒ แƒ’แƒ˜แƒœแƒ“แƒ แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒงแƒแƒก git แƒคแƒแƒ แƒ›แƒแƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒฅแƒ•แƒก 250+ แƒ—แƒแƒ˜แƒ’แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ.
แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ 2014 แƒฌแƒšแƒ˜แƒ“แƒแƒœ แƒขแƒ”แƒ แƒแƒคแƒแƒ›แƒจแƒ˜ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช 2016 แƒฌแƒ”แƒšแƒก แƒ“แƒแƒ˜แƒฎแƒฃแƒ แƒ แƒ˜แƒ› แƒ˜แƒ›แƒ”แƒ“แƒ˜แƒ— แƒ แƒแƒ› แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜.

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ”แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ แƒฏแƒ•แƒœแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ แƒชแƒฎแƒœแƒ˜แƒ•

แƒ’แƒแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ: แƒแƒ•แƒขแƒแƒ แƒ˜ แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜ แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ” แƒ แƒฃแƒกแƒ”แƒ—แƒจแƒ˜ แƒแƒ  แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒก แƒ“แƒ แƒ แƒฃแƒกแƒฃแƒšแƒแƒ“ แƒชแƒแƒขแƒแƒก แƒฌแƒ”แƒ แƒก. แƒฃแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ“แƒ˜แƒ— แƒแƒ แƒ—แƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒš แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก.

แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜

1. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก AWS-แƒ˜แƒก แƒ›แƒ–แƒ แƒ“แƒ แƒซแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒชแƒแƒ“แƒ” แƒฉแƒ”แƒ›แƒ˜ 250+ แƒ—แƒแƒ˜แƒ’แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ, แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜, แƒ แƒแƒ› แƒ˜แƒฅ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒชแƒฃแƒ“แƒแƒ“ แƒ˜แƒงแƒ. AWS แƒฃแƒ™แƒ•แƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒแƒœแƒ˜แƒ แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒก แƒฃแƒแƒ›แƒ แƒแƒ• แƒแƒฎแƒแƒš แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒแƒ› แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ›แƒแƒ— แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ”แƒก แƒšแƒแƒšแƒ˜แƒกแƒคแƒ”แƒ แƒ˜แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜ แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒ˜แƒ. แƒกแƒแƒฆแƒแƒ›แƒแƒก 2-แƒ˜แƒก แƒ›แƒ”แƒ แƒ” แƒ’แƒแƒ•แƒ’แƒ–แƒแƒ•แƒœแƒ” แƒ’แƒแƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ›แƒ”แƒขแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ˜แƒฅ แƒ“แƒ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜, แƒ แƒแƒ› แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜.
แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒ: แƒ˜แƒก แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก 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 แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก?? แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ `terraform refresh~. terraform แƒ˜แƒฆแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก tfstate-แƒจแƒ˜ แƒ“แƒ ID-แƒ˜แƒ— แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒ–แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒฌแƒ”แƒ แƒก tfstate-แƒจแƒ˜. แƒแƒœแƒฃ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ tfstate แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ ID-แƒ”แƒ‘แƒ˜แƒ—, แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— `terraform refresh` แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒ แƒฃแƒš tfstates. แƒฐแƒแƒ แƒ˜!
แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ แƒ”แƒ™แƒฃแƒ แƒกแƒ˜แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒœแƒแƒ’แƒ แƒแƒคแƒ˜แƒ 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). github.com/GoogleCloudPlatform/terraformer
แƒฃแƒ™แƒ•แƒ” แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ 600 แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ˜, 2 pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ openstack-แƒ˜แƒกแƒ แƒ“แƒ kubernetes-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“. แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ แƒฎแƒแƒšแƒฎแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก
แƒ•แƒฃแƒ แƒฉแƒ”แƒ• แƒงแƒ•แƒ”แƒšแƒแƒก, แƒ•แƒ˜แƒกแƒแƒช แƒกแƒฃแƒ แƒก แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ Terraform-แƒ—แƒแƒœ แƒ“แƒ แƒแƒ  แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒขแƒแƒœ แƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก, แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒก, แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ”แƒ‘แƒก.

แƒ“แƒ”แƒ›แƒ
Terraformer - Infrastructure To Code

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ