Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure antenna: ARM Template for Linux

522 views

Published on

6/13に実施したazure antennaの資料

Published in: Technology
  • Login to see the comments

Azure antenna: ARM Template for Linux

  1. 1. Update 2018/06
  2. 2. 本日のアジェンダ 13:00-13:30 オープニング 13:30-15:00 ARM templateの紹介とデモ 15:00-15:15 休憩 15:15-16:00 ARM templateを使ったハンズオントレーニング 16:00-16:45 Linux勉強会 16:45-17:00 まとめ/全体QA
  3. 3. 3 オープニング
  4. 4. 4 ARM templateの紹介とデモ
  5. 5. 5 の前に、、 Azure用語がたくさんでてきます。 本セッションでよく出てくる以下の言葉をおさらいしましょう。 1、VM 仮想マシン 2、vNET/Subnet 仮想ネットワーク/サブネット 3、StorageAccount blob、Files、Tables、Queueなどを束ねたもの 4、NSG ネットワークセキュリティグループ 5、Public IP 外部に出すIP address 6、OSDisk/DataDisk VMに付いた・付けるディスク 7、Load Balancer External/Internalの2種類があるL4のLB 8、Application Gateway L7レイヤのLB 9、他は随時説明します
  6. 6. Visual Studio Team System Architecture Edition
  7. 7. Infrastructure as Code Configuration Management Tool Container 開発環境・実行環境のパッケージ/クラスタ化、 マルチ OS 環境を作成する技術
  8. 8. 利用可能なインターフェース Azure ポータル、SDK-CLI 各種 コードの形式 JSON 形式 テンプレートの単位 Resource Group 単位 基本機能 テンプレートからのデプロイ機能 Resource Group 単位のエクスポート機能 増分デプロイと完全デプロイ 料金 無料(デプロイしたリソースは有料)
  9. 9. エディタ インポート/エクスポート
  10. 10. 例)Linuxクライアントからの操作 ●リソースグループの作成(hogehoge-rgという名前のリソースグループを作成) az group create –-name hogehoge-rg --location japaneast ●既存にあるリソースグループのテンプレートを標準出力する(hogehoge-rgのテンプレートエクスポート) az group export --resource-group hogehoge-rg ●ローカルに保存されているJSONファイル(ここではsample.json)のデプロイテストを行う az group deployment validate --resource-group hogehoge-rg --template-file ./sample.json ●ローカルに保存されているJSONファイルをデプロイする az group deployment create --resource-group hogehoge-rg --template-file ./sample.json 他にもストレージアカウントに配置したテンプレートをSASトークンを使ってセキュアにデプロイする方法や --modeを指定してCompleteデプロイ(完全デプロイ)する方法など、さまざまな引数が用意されています。 オフィシャルサイト: https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-template-deploy-cli?toc=%2fcli%2fazure%2ftoc.json&bc=%2fcli%2fazure%2fbreadcrumb%2ftoc.json&view=azure-cli-latest
  11. 11. 例)PowerShellからの操作 ●既存にあるリソースグループのテンプレートをファイル出力する Export-AzureRmResourceGroup -ResourceGroupName $your_rg_name -IncludeParameterDefaultValue - IncludeComments -Path $your_jsonfile_path ●JSONパース $jsonObject = (Get-Content $your_jsonfile_path -Raw | ConvertFrom-Json) $jsonObject.parameters.virtualMachines_name.defaultValue ●ローカルに保存されているJSONファイルをデプロイする New-AzureRmResourceGroupDeployment -ResourceGroupName $your_rg_name -TemplateFile $your_jsonfile_path ●ローカルに保存されているJSONファイルとパラメータファイル合わせてデプロイする New-AzureRmResourceGroupDeployment -ResourceGroupName $your_rg_name –TemplateFile - TemplateParameterFile $json_param_file_path
  12. 12. 実際のブツ
  13. 13. 心構え(とりあえず肩の力を抜こう) 所詮は「定義ファイル」 コピペ&テストで充分 今まで通りのやり方
  14. 14. JSONの基本構造 省略可能な定義
  15. 15. 任意定義と固定定義の違いとは ●わかりやすい例(Azure Portal) 任意定義(parameters)は入力する値を 利用者に委ねる。 ※固定定義(valiables)は入力を求めない ●応用 parametersファイルのみ切り出す運用が 可能。テンプレート作成時に本体ファイル (template.json)とパラメータファイル (parameters.json)と2つ指定してデプロイ することが可能。 ※本体ファイルはユーザーには渡さず パラメータファイルだけ入力してもらい 管理者が2つ合わせてデプロイする
  16. 16. テンプレート例  {  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  "contentVersion": "1.0.0.0",  "parameters": {},  "variables": {  "containerGroupName": "AzureAntenna",  "containerName": "web",  "containerImage": "nginx:latest“,  "location": "westus"  },  "resources": [  {  "name": "[variables('containerGroupName')]",  "type": "Microsoft.ContainerInstance/containerGroups",  "apiVersion": "2017-08-01-preview",  "location": "[variables('location')]",  ####続く####
  17. 17. 個社要件に合うサンプルはどう探すか
  18. 18. ARM templateを使った自動構築 必要なリソースをJSONファイルに記載し一括デプロイ
  19. 19. 新規案件 サイクルの加速 リソース不足 に対する柔軟な対 応 環境依存、規模 依存に対する トラブル対応 常に プロダクション 環境を想定した デプロイ
  20. 20. エンジニアのみなさんおまたせしました
  21. 21. Demoでやってたこと ●東日本リージョン - 手動で1台作成 - テンプレートで自動構築 (CentOS/vNET-Subnet/Storage account/NiC/NSG/Extension) ●西日本リージョン - 東日本リージョンで使った テンプレートをCloud Shellから 自動構築 ●アメリカ西海岸 - テンプレートをカスタマイズし 複数台指定のVMを自動構築 (CentOSx2/vNET-Subnet/Storage accountx2/NiCx2/NSG/Extension) ●イギリス、シンガポール、オーストラリア南東部 - 2VMずつ、テンプレートを並列で実行し 一気に自動構築
  22. 22. やってることをもう少し細かく vNET (192.168.0.0/16) Subnet (192.168.0.0/24) Azure VM Standard_A2 CentOS 7.4 Public IP インターネット NSG JSON内ではこのセットを複製している ※NSGとAvailability Setは共有させて利用 このシステム全体を各国のResourceGroupへ展開している
  23. 23. Demoで使ったサンプルテンプレートです https://github.com/akkoike/ARMtemplate/blob/master /customize/CentOS-base/centos-loop.json
  24. 24. 慣れてくるとこんなこともできます https://github.com/akkoike/ARMtemplate/blob/master/parts/V MscaleSet/vmssimage.json
  25. 25. appendix 〇各azureサービスで利用できる項目や型等のリファレンス https://docs.microsoft.com/ja-jp/rest/api/compute/ 〇$schemaバージョンの確認 https://github.com/Azure/azure-resource-manager-schemas/tree/master/schemas 〇利用できる関数 https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions 〇Azure Resource Explorer (サインインしてResourceGroup事のtemplateを管理できます) https://resources.azure.com 〇Azure Quickstart Templates https://github.com/Azure/azure-quickstart-templates 〇ARMのエラーコード一覧 https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-common- deployment-errors
  26. 26. 28  本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、 提示された情報の信憑性については保証できません。  本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。  すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、 機械的、複写、レコーディング、その他)、および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。  Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれら の特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。

×