>  기사  >  백엔드 개발  >  Golang 스크립트가 Terraform(HCL 형식) 파일의 값을 수정하도록 하려면 어떻게 해야 하나요?

Golang 스크립트가 Terraform(HCL 형식) 파일의 값을 수정하도록 하려면 어떻게 해야 하나요?

WBOY
WBOY앞으로
2024-02-09 12:06:28863검색

如何让 Golang 脚本修改 Terraform(HCL 格式)文件中的值?

php 편집기 Youzi는 Golang 스크립트를 사용하여 Terraform(HCL 형식) 파일의 값을 수정하는 방법을 가르쳐줍니다. Terraform은 클라우드 인프라를 관리하고 자동화하는 데 도움이 되는 코드형 인프라 도구입니다. 그러나 Terraform 파일의 특정 값을 자주 수정해야 하는 경우 수동 작업이 매우 지루해집니다. 따라서 Golang 스크립트를 사용하여 Terraform 파일의 값을 수정하는 것이 더 효율적인 방법이 될 것입니다. 이 글에서는 Terraform 파일의 값을 쉽게 수정할 수 있도록 Golang을 사용하여 이 목표를 달성하는 스크립트를 작성하는 방법을 보여 드리겠습니다.

질문 내용

Azure 네트워크 보안 그룹을 정의하는 Terraform 파일에 대해 약간의 자동화를 수행하려고 합니다. 기본적으로 웹사이트와 SSH 액세스 권한이 있으므로 icanhazip.com 获取该地址。我希望使用 golang 脚本将我的 ip 写入 .tf 文件的相关部分(本质上是设置 security_rule.source_address_prefixes 값에서 액세스할 수 있는 공개 IP 주소만 허용하고 싶습니다.

golang에서 hclsimple 库,并尝试了 gohclhclwrite 등을 사용하려고 하는데 기본적으로 hcl 파일을 golang 구조로 변환하는 데 아무런 진전이 없습니다.

내 terraform 파일(내 생각으로는 hcl 형식)은 다음과 같습니다.

으아악

이것은 위의 데이터를 구조로 표현한 다음 .tf 파일 자체를 디코딩하려는 golang 스크립트에서 얻은 것입니다. 문서 문서 hclsimple 으아악

코드를 실행하면 기본적으로 networksecuritygroup.securityrule을 정의하려고 하는데 위 코드를 사용하면 다음 오류가 발생합니다.

으아악

어떤 제안이라도 대단히 감사하겠습니다

해결 방법

따라서 현재

https://www.php.cn/link/f56de5ef149cf0aedcc8f4797031e229는 불가능합니다(여기를 참조하세요 https://www.php.cn/link/ f56de5ef149cf0aedcc8f47970 31e229/문제 /50 - 이 제안 자체는 편의를 위해 변경되어야 합니다.)hclwrite

그래서 @martin atkins가 제안한 대로 해결했습니다.

locals 변수가 포함된

파일을 만들었고 이를 nsg 보안 규칙에서 참조했습니다. locals.tf 으아악

이제 IP를 얻고 sed를 사용하여 locals.tf 파일의 값을 업데이트합니다

으아악

위 내용은 Golang 스크립트가 Terraform(HCL 형식) 파일의 값을 수정하도록 하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제