ホームページ > バックエンド開発 > Golang > Golang スクリプトで Terraform (HCL 形式) ファイルの値を変更するにはどうすればよいですか?

Golang スクリプトで Terraform (HCL 形式) ファイルの値を変更するにはどうすればよいですか?

WBOY
リリース: 2024-02-09 12:06:28
転載
939 人が閲覧しました

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

php Xiaobian Youzi は、Golang スクリプトを使用して Terraform (HCL 形式) ファイルの値を変更する方法を説明します。 Terraform は、クラウド インフラストラクチャの管理と自動化に役立つコードとしてのインフラストラクチャ ツールです。ただし、Terraform ファイル内の特定の値を頻繁に変更する必要がある場合、手動操作は非常に面倒になります。したがって、Golang スクリプトを使用して Terraform ファイルの値を変更する方が効率的な方法になります。この記事では、この目標を達成するために Golang を使用してスクリプトを作成し、Terraform ファイルの値を簡単に変更できるようにする方法を説明します。

質問の内容

Azure ネットワーク セキュリティ グループを定義する手持ちの terraform ファイルに対して、少量の自動化を実行しようとしています。基本的に、Web サイトと SSH アクセスを持っています。icanhazip.com から取得できるパブリック IP アドレスを許可したいだけです。 golang スクリプトを使用して、.tf ファイルの関連部分に IP を書き込みたいと考えています (本質的に security_rule.source_address_prefixes の値を設定します)。

golang で hclsimple ライブラリを使用しようとして、gohclhclwrite などを試しましたが、本質的には hcl ファイルを golang に変換していますが、進歩はありませんでした構造上。

私の terraform ファイル (hcl 形式だと思います) は次のとおりです:

リーリー

これは、上記のデータを構造として表現し、.tf ファイル自体をデコードしようとした golang スクリプトで得られたものです (次のようにするために、hclsimple からいくつかのメソッドをローカルにコピーしました)ドキュメントの推奨事項に従って、.tf ファイルをデコードします。

リーリー

コードを実行すると、基本的に networksecuritygroup.securityrule を定義しようとしており、上記のコードを使用すると次のエラーが発生します。

リーリー

いかなる提案も大歓迎です

回避策

したがって、現時点では //m.sbmmt.com/link/f56de5ef149cf0aedcc8f4797031e229 は不可能です (ここを参照//m.sbmmt.com/link/f56de5ef149cf0aedcc8f4797031e229/issues/50 - この提案hclwrite自体は便宜上変更する必要があります)

@martin atkins が提案したように解決しました:

locals 変数を含む locals.tf ファイルを作成し、nsg セキュリティ ルールで参照しました。 リーリー

ここで、IP を取得し、sed を使用して locals.tf ファイルの値を更新します

リーリー

以上がGolang スクリプトで Terraform (HCL 形式) ファイルの値を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート