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
ライブラリを使用しようとして、gohcl
、hclwrite
などを試しましたが、本質的には hcl ファイルを golang に変換していますが、進歩はありませんでした構造上。
私の terraform ファイル (hcl 形式だと思います) は次のとおりです:
リーリーこれは、上記のデータを構造として表現し、.tf ファイル自体をデコードしようとした golang スクリプトで得られたものです (次のようにするために、hclsimple
からいくつかのメソッドをローカルにコピーしました)ドキュメントの推奨事項に従って、.tf ファイルをデコードします。
コードを実行すると、基本的に networksecuritygroup.securityrule を定義しようとしており、上記のコードを使用すると次のエラーが発生します。
リーリーいかなる提案も大歓迎です
したがって、現時点では https://www.php.cn/link/f56de5ef149cf0aedcc8f4797031e229 は不可能です (ここを参照https://www.php.cn/link/f56de5ef149cf0aedcc8f4797031e229/issues/50 - この提案hclwrite
自体は便宜上変更する必要があります)
@martin atkins が提案したように解決しました:
locals 変数を含む locals.tf
ファイルを作成し、nsg セキュリティ ルールで参照しました。
リーリー
リーリー
以上がGolang スクリプトで Terraform (HCL 形式) ファイルの値を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。