A presentation at Japan Azure User Group 9周年イベント in September 2019 in Tokyo, Japan by Kazumi OHIRA
今日から始める ARMテンプレート Japan Azure User Group 9周年イベント https://jazug.connpass.com/event/140843/
Azure のリソース管理、 どうしてますか?
ARMテンプレートをご紹介します!
Self introduction
Me { “name”: { “ja”: “大平かづみ”, “en”: “Kazumi OHIRA” }, “currentPosition”: “フリーランス”, “awards”: [“Microsoft MVP”], “favorites”: [ “Azure”: [“ARM template”, “IoT”] ], “twitter”: “@dz_” }
Infrastructure as Code のおさらい
Infrastructure as Code のおさらい • インフラ構成・管理をコードで行うこと • メリット • インフラ管理を自動化できる • 実態と紐づくため抜け漏れがない • バージョン管理と併用することでレビューしやすく
Infrastructure as Code のおさらい • インフラ構成・管理をコードで行うこと • メリット • インフラ管理を自動化できる • 実態と紐づくため抜け漏れがない • バージョン管理と併用することでレビューしやすく コードにさえしていれば、 後から思い出せる! (個人的メリット)
ARMテンプレート
ARMテンプレートのいいところ 冪等性保持をARM側がやってくれる Azure 純正なので、細かいところまで操作できる!
ARMテンプレート最初の一歩 • 知る • Azureポータルで手動でリソース作って、エクスポートしてみる • 書く • エクスポートしたARMテンプレートには、不要なパラメータも含まれているた め、これを参考に新たに書き直した方がきれい • リファレンスを参考に、APIバージョンの更新や不要なパラメータを整理する • Visual Studio Code で書くのおすすめ • 実行する • 大体一発目はこける(笑) こけたときはエラーメッセージを頼りに直す。 • 根気よく(笑)
リファレンス • Azure 上の Resource Manager のドキュメント - チュートリアル、 サンプル、リファレンス、リソース | Microsoft Docs • Visual Studio Code を使って Azure Resource Manager テン プレートを作成する | Microsoft Docs • Azure/azure-quickstart-templates: Azure Quickstart Templates
ARMテンプレートの構成 { “$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”, “contentVersion”: “”, “parameters”: { }, “variables”: { }, “resources”: [ ], JSON で書かれた、 “outputs”: { } Azure REST API の } ラッパーのようなもの https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-groupauthoring-templates
CI/CDでARMテンプレートを活用する • Azure DevOps との相性最高! • Azure Resource Group Deployment task • Azure CLI task • Azure PowerShell task
ARMテンプレートのテスト • Visual Studio Code 拡張機能による静的チェック • テストフレームワークを利用したチェック • ARMテンプレートの Output を利用したチェック • Azure CLI, Azure PowerShell, Azure SDK を利用したチェック • 疎通テストは、システムによってテスト方法は異なる • VM なら Serverspec や Testinfra でコンフィグレーションチェック • API ならE2Eテスト、など
サンプル作ってみました Azure DevOps で ARMテンプレートを使う
サンプル Azure DevOps x ARMテンプレート • Azure Functions のテストを 想定 • ARMテンプレートでテスト用リ ソースを作成 • ソースコードを Azure Functions にデプロイ • Mocha を使ったテスト実施 • リソースを削除 https://github.com/dzeyelid/getting-started-arm-template
Have fun!