Upgrade to Pro — share decks privately, control downloads, hide ads and more …

丸投げ! ChatGPT で Azure の環境を IaC する

Unno Wataru
December 12, 2023

丸投げ! ChatGPT で Azure の環境を IaC する

https://hybridcloud.connpass.com/event/302737/

Infrastructure as Code のツールを用いて Azure に環境を構築する内容です。
OpenAI ChatGPT (GPT-4V) を使ってどこまで丸投げできるのかを検証します。
どれぐらい雑でもイケるのか、コード生成における実際の打率、そしてどれぐらい自分で書かないといけないのかを調べたりします。
「他のChatGPTセッションもホントは上手くいったとこだけ切り抜いてデモを作ってるんですよね?」という疑問に迫ります。

Unno Wataru

December 12, 2023
Tweet

More Decks by Unno Wataru

Other Decks in Technology

Transcript

  1. 2 Copyright © 2023 Networld Corporation All Rights Reserved. もくじ

    • はじめに • HashiCorp Terraform が実現する Infrastructure as Code • Networld X というイベントで… • 同じプロンプトと同じ素材での再現性はどうか • 同じプロンプトと別の素材での再現性はどうか • まとめ
  2. 4 Copyright © 2023 Networld Corporation All Rights Reserved. 自己紹介

    ネットワールドのソリューションアーキテクト NVIDIA NGCA, VMware vExpert 趣味とか… : 海野 航 (うんの わたる)
  3. 10 Copyright © 2023 Networld Corporation All Rights Reserved. 詳しい

    Terraform の概要は過去の HCCJP をご覧ください!! https://www.youtube.com/watch?v=WXFTPh7EnHY
  4. 11 Copyright © 2023 Networld Corporation All Rights Reserved. そもそも

    Infrastructure as Code (IaC) とは? インフラ CPUやメモリ、ディスクといったリソース、 あるいは仮想マシンやアプライアンスそのもの コードで 表現すること を
  5. 12 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform

    による IaC で インフラセルフサービスを実現 導 入 前 導 入 後 ソフトウェア開 発者 ソフトウェア開 発者 インフラ要件 (作業指示書) Terraform の コード (HCL) インフラ SE が 作業を実施 Terraform が プロビジョニング 開発者が 要求した リソース 開発者が 要求した リソース
  6. 14 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform

    が Infrastructure as Code を実現する 再利用可能な ソースコードとして インフラの構成を 定義する 多様なインフラを ワークフローを 変えることなく 導入する 出典 : Terraformで超サクッとループで リソースを用意する方法 https://dev.classmethod.jp/cloud/ aws/terraform-network-variable/ 出典 : Azure 上の HashiCorp Terraform https://azure.microsoft.com/ja- jp/solutions/devops/terraform/
  7. 15 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform

    を提供する HashiCorp とネットワールドの関係 ネットワールド、米HashiCorp社と 世界初のディストリビューター契約を締結 出典 : https://headlines.yahoo.co.jp/hl?a=20200417-00173793-bcn-prod
  8. 22 Copyright © 2023 Networld Corporation All Rights Reserved. ChatGPT芸を打つ

    入力したプロンプト 「この構成図とヒアリング項目に基づいて Terraformのコードを生成してください。 セキュリティの観点からクレデンシャル情報の 項目は別ファイルにします。」
  9. 25 Copyright © 2023 Networld Corporation All Rights Reserved. 実際のリポジトリ

    : 手作業の修正なし、ガチでコミットした https://github.com/unnowataru/networld-x-2023/
  10. 26 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform

    Cloud で Azure にプロビジョニングする流れ • 生成したコードを GitHub に格納する
  11. 27 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform

    Cloud で Azure にプロビジョニングする流れ • Terraform Cloud の初期設定 と リポジトリの紐付けをする
  12. 30 Copyright © 2023 Networld Corporation All Rights Reserved. 1回目

    • 「... additional resources for NIC, public IP, VM, etc.」が発生 • main.tf の1ファイル構成
  13. 31 Copyright © 2023 Networld Corporation All Rights Reserved. 2回目

    • またしても1ファイル構成かつ “terraform init” ができない
  14. 32 Copyright © 2023 Networld Corporation All Rights Reserved. 3回目

    • ちゃんとしてそう • main.tf, secrets.tfvars, variables.tf の3ファイル構成
  15. 33 Copyright © 2023 Networld Corporation All Rights Reserved. 4回目

    • なんかあやしい • ファイル名の定義なし と secrets.tfvars の2ファイル構成
  16. 34 Copyright © 2023 Networld Corporation All Rights Reserved. みたいな感じで5回目~10回目まで繰り返した結果

    応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 英語 × main.tf × 2nd 英語 × ファイル名なし × 3rd 英語 ◦ secrets.tfvars main.tf variables.tf 美しい ◦ 4th 英語 ◦ ファイル名なし secrets.tfvars 手作業でファイル名を変更 △ 5th 英語 × main.tf × 6th 英語 × main.tf × 7th 英語 ◦ variables.tf main.tf secrets.tfvars 美しい ◦ 8th 英語 × ファイル名なし × 9th 英語 ◦ ファイル名なし secrets.tfvars variables.tf 手作業でファイル名を変更 △ 10th 英語 × ファイル名なし ×
  17. 37 Copyright © 2023 Networld Corporation All Rights Reserved. いけますね

    • 普通に ”terraform apply” まで実行できた
  18. 38 Copyright © 2023 Networld Corporation All Rights Reserved. 2回目~10回目まで

    • また繰り返す… (2回目はイマイチだった)
  19. 39 Copyright © 2023 Networld Corporation All Rights Reserved. みたいな感じで10回目まで繰り返した結果

    応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 英語 ◦ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ◦ 2nd 英語 × ファイル名なし × 3rd 英語 × ファイル名なし × 4th 英語 × ファイル名なし × 5th 英語 × ファイル名なし × 6th 英語 ◦ secrets.tfvars main.tf ◦ 7th 英語 ◦ variables.tf secrets.tfvars main.tf ◦ 8th 英語 × ファイル名なし × 9th 英語 × ファイル名なし secrets.tfvars variables.tf 一部欠落したパラメータあり × 10th 英語 △ ファイル名なし secrets.tfvars 手作業でファイル名を変更 △
  20. 41 Copyright © 2023 Networld Corporation All Rights Reserved. もしかして画像は関係ないのでは…

    入力したプロンプト 「この構成図とヒアリング項目に基づいて Terraformのコードを生成してください。 セキュリティの観点からクレデンシャル情報の 項目は別ファイルにします。」
  21. 43 Copyright © 2023 Networld Corporation All Rights Reserved. 5回目まで繰り返した結果

    応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 日本語 ◦ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ◦ 2nd 日本語 ◦ main.tf secrets.tfvars ◦ 3rd 日本語 ◦ terraform.tfvars main.tf 丁寧な解説付き ◎ 4th 日本語 ◦ ファイル名なし variables.tf secrets.tfvars 手作業でファイル名を変更 ◦ 5th 日本語 ◦ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ◦
  22. 45 Copyright © 2023 Networld Corporation All Rights Reserved. 一応生成はしてくれる

    • 誤読あり AIGen → A1Gen • 一部欠落のセクションあり (NSGがない)
  23. 49 Copyright © 2023 Networld Corporation All Rights Reserved. まとめ

    今回の検証条件では… 構成図を含めると期待する回答への応答精度が下がった 構成図を含めたときに 期待する回答への打率は3割ぐらい ヒアリング項目をテキストのみで伝えた場合は まさかの100% とは言え、正しいかどうかを判断するためには 各プロダクトやサービスの知識が必要ですよね
  24. 50 Copyright © 2023 Networld Corporation All Rights Reserved. 詳しい

    Terraform の概要は過去の HCCJP をご覧ください!! https://www.youtube.com/watch?v=WXFTPh7EnHY ChatGPT と組み合わせて もっとすぐできるようになってます