株式会社ネットワールド
SI技術本部 ソリューションアーキテクト課
合言葉は「JUST DEPLOY」
- Provisioning Nutanix VMs with Terraform -
Nutanix Meetup #47
海野 航
2Copyright © 2019 Networld Corporation All Rights Reserved.
もくじ
• 自己紹介
• Terraform
• 帰ってすぐできる!
Terraform でプロビジョニング
• まとめとか
Copyright © 2019 Networld Corporation All Rights Reserved.
自己紹介
4Copyright © 2019 Networld Corporation All Rights Reserved.
あんた誰
海野 航 (うんの わたる)
Twitter : @UnnoWataru クレカと旅行の話が多い
ネットワールド っていう会社で
ソリューションアーキテクトをやってます
Citrix Future of Work 2019 で登壇しますので
万が一 VDI に興味があればレジストをお願いします
5Copyright © 2019 Networld Corporation All Rights Reserved.
あんた誰
Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform
7Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform の前に Infrastructure as Code のメリット
出典 : [iMagazine] Infrastructure as Codeの留意点とメリット サーバー更改プロジェクトへの適用で得られた知見・実感
https://www.imagazine.co.jp/infrastructure-as-codeの留意点とメリット%E3%80%80~サーバー更改プロ/
8Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform とは
再利用可能な
ソースコードとして
インフラの構成を
定義する
多様なインフラを
ワークフローを
変えることなく
導入する 出典 : Azure 上の HashiCorp Terraform
https://azure.microsoft.com/ja-jp/solutions/devops/terraform/
出典 : Terraformで超サクッとループで
リソースを用意する方法
https://dev.classmethod.jp/cloud/
aws/terraform-network-variable/
9Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform だけでいろんな環境のデプロイができるぞ!
ACME Cloudflare GitHub Local OVH Spotinst
Akamai CloudScale.ch GitLab Logentries Packet StatusCake
Alibaba Cloud CloudStack Google Cloud Platform LogicMonitor PagerDuty TelefonicaOpenCloud
Archive Cobbler Grafana Mailgun Palo Alto Networks Template
Arukas Consul Gridscale MongoDB Atlas PostgreSQL TencentCloud
Avi Vantage Datadog Hedvig MySQL PowerDNS Terraform
Aviatrix DigitalOcean Helm Naver Cloud ProfitBricks Terraform Cloud
AWS DNS Heroku Netlify Pureport TLS
Azure DNSimple Hetzner Cloud New Relic RabbitMQ Triton
Azure Active Directory DNSMadeEasy HTTP Nomad Rancher UCloud
Azure Stack Docker HuaweiCloud NS1 Rancher2 UltraDNS
A10 Networks Dome9 HuaweiCloudStack Null Random Vault
Bitbucket Dyn Icinga2 Nutanix RightScale Venafi
Brightbox Exoscale Ignition 1&1 Rundeck VMware NSX-T
CenturyLinkCloud External InfluxDB OpenStack RunScope VMware vCloud Director
Chef F5 BIG-IP JDCloud OpenTelekomCloud Scaleway VMware vRA7
CherryServers Fastly Kubernetes OpsGenie Selectel VMware vSphere
Circonus FlexibleEngine LaunchDarkly Oracle Cloud Infrastructure SignalFx Vultr
Cisco ASA FortiOS Librato Oracle Cloud Platform Skytap Yandex
Cisco ACI Genymotion Linode Oracle Public Cloud SoftLayer
出典 : HashiCorp Terraform Providers
https://www.terraform.io/docs/providers/index.html
10Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform はデプロイするだけなら帰ってすぐできるぞ!
Copyright © 2019 Networld Corporation All Rights Reserved.
帰ってすぐできる!
Terraform でプロビジョニング
12Copyright © 2019 Networld Corporation All Rights Reserved.
注意事項
今回紹介する内容について、
Nutanix 様 ならびに HashiCorp 様 では ノンサポートです
それに、もともと OSS 版の Terraform は コミュニティサポート
( Terraform のサポートが必要な場合は Enterprise Edition を!)
なぜなら、本当は Prism Element ではなく
Prism Central が必要だからです
個人的に聞かれたら できるだけがんばります
13Copyright © 2019 Networld Corporation All Rights Reserved.
仮想マシン デプロイまでの流れ
仮想マシンのディスクイメージ化
UUID の確認
( クラスター / ネットワーク / ディスクイメージ )
Terraform のインストール例
コードの作成
Terraform の実行
( INIT / PLAN / APPLY )
14Copyright © 2019 Networld Corporation All Rights Reserved.
今回のゴール
• Terraform を使って仮想マシンを コード でデプロイする
15Copyright © 2019 Networld Corporation All Rights Reserved.
仮想マシンのディスクイメージ化
• Terraform を使ってプロビジョニングしたい仮想マシンの
テンプレート を ディスクイメージ に変換します
image.create <target-img> image_type=kDiskImage
clone_from_vmdisk=vm:<taget-vm>:scsi.0
ここでは <unnow-win2016template> という仮想マシンを
<unnow_win2016_img> というイメージに変換しようとしている
参考ブログ : NTNX>日記
VM から Acropolis Image Service のディスクイメージを作成する。
http://blog.ntnx.jp/entry/2017/05/06/133123
16Copyright © 2019 Networld Corporation All Rights Reserved.
UUID の確認
• AHVクラスターのUUID
17Copyright © 2019 Networld Corporation All Rights Reserved.
UUID の確認
• ネットワークの UUID : net.list
• ディスクイメージの UUID : image.list
<0> という名前のネットワークに接続させたい
<unnow_win2016_img> を使いたい
18Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• Terraform のダウンロード
https://www.terraform.io/ からダウンロード
19Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 展開して生成されたフォルダーを任意の場所に配置
20Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 環境変数 Path の設定
21Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 動作確認 : コマンドプロンプトから “terraform -version”
22Copyright © 2019 Networld Corporation All Rights Reserved.
コードの作成
• GitHub から [ main.tf ] と [ terraform.tfvars ] をコピペ
https://github.com/unnowataru/terraform-nutanix-sample
23Copyright © 2019 Networld Corporation All Rights Reserved.
コードの作成
• 任意のフォルダーに [ main.tf ] と
[ terraform.tfvars ] をコピペして新規作成
https://github.com/unnowataru/terraform-nutanix-sample
24Copyright © 2019 Networld Corporation All Rights Reserved.
コードの作成
• terraform.tfvars のパラメータを各環境固有のものに置き換える
25Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform INIT
• コマンドプロンプトにて main.tf と terraform.tfvars を
配置したフォルダーに移動して “terraform init” を実行
26Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform INIT
• “terraform init” を実行すると、Nutanixのプロバイダーに応じた
プラグインが自動的にダウンロードされる
27Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform PLAN
• コマンドプロンプトにて “terraform plan” を実行
• 特に問題がなければ”terraform apply”が実行可能な状態に遷移
28Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform APPLY
• コマンドプロンプトにて “terraform apply” を実行
29Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform APPLY
• デプロイ完了
30Copyright © 2019 Networld Corporation All Rights Reserved.
ワンカットの DEMO VIDEO (4分ぐらい)
Copyright © 2019 Networld Corporation All Rights Reserved.
まとめとか & 謝辞
32Copyright © 2019 Networld Corporation All Rights Reserved.
Terraform はデプロイするだけなら帰ってすぐできるぞ!
33Copyright © 2019 Networld Corporation All Rights Reserved.
まとめとか (初出情報多い)
• 今回の Terraform 前提条件
₋Windows 10 バージョン 1903
₋Terraform 0.12.14
₋Nutanix AOS 5.10.6 / AHV 20170830.279
₋今回は Prism Element に直接接続 (サポート対象外)
• オレの GitHub リポジトリ
₋https://github.com/unnowataru/terraform-nutanix-sample
https://github.com/terraform-providers/terraform-provider-nutanix/blob/master/examples/main.tf
Provisioning Nutanix VMs with Terraform

Provisioning Nutanix VMs with Terraform

  • 1.
  • 2.
    2Copyright © 2019Networld Corporation All Rights Reserved. もくじ • 自己紹介 • Terraform • 帰ってすぐできる! Terraform でプロビジョニング • まとめとか
  • 3.
    Copyright © 2019Networld Corporation All Rights Reserved. 自己紹介
  • 4.
    4Copyright © 2019Networld Corporation All Rights Reserved. あんた誰 海野 航 (うんの わたる) Twitter : @UnnoWataru クレカと旅行の話が多い ネットワールド っていう会社で ソリューションアーキテクトをやってます Citrix Future of Work 2019 で登壇しますので 万が一 VDI に興味があればレジストをお願いします
  • 5.
    5Copyright © 2019Networld Corporation All Rights Reserved. あんた誰
  • 6.
    Copyright © 2019Networld Corporation All Rights Reserved. Terraform
  • 7.
    7Copyright © 2019Networld Corporation All Rights Reserved. Terraform の前に Infrastructure as Code のメリット 出典 : [iMagazine] Infrastructure as Codeの留意点とメリット サーバー更改プロジェクトへの適用で得られた知見・実感 https://www.imagazine.co.jp/infrastructure-as-codeの留意点とメリット%E3%80%80~サーバー更改プロ/
  • 8.
    8Copyright © 2019Networld Corporation All Rights Reserved. Terraform とは 再利用可能な ソースコードとして インフラの構成を 定義する 多様なインフラを ワークフローを 変えることなく 導入する 出典 : Azure 上の HashiCorp Terraform https://azure.microsoft.com/ja-jp/solutions/devops/terraform/ 出典 : Terraformで超サクッとループで リソースを用意する方法 https://dev.classmethod.jp/cloud/ aws/terraform-network-variable/
  • 9.
    9Copyright © 2019Networld Corporation All Rights Reserved. Terraform だけでいろんな環境のデプロイができるぞ! ACME Cloudflare GitHub Local OVH Spotinst Akamai CloudScale.ch GitLab Logentries Packet StatusCake Alibaba Cloud CloudStack Google Cloud Platform LogicMonitor PagerDuty TelefonicaOpenCloud Archive Cobbler Grafana Mailgun Palo Alto Networks Template Arukas Consul Gridscale MongoDB Atlas PostgreSQL TencentCloud Avi Vantage Datadog Hedvig MySQL PowerDNS Terraform Aviatrix DigitalOcean Helm Naver Cloud ProfitBricks Terraform Cloud AWS DNS Heroku Netlify Pureport TLS Azure DNSimple Hetzner Cloud New Relic RabbitMQ Triton Azure Active Directory DNSMadeEasy HTTP Nomad Rancher UCloud Azure Stack Docker HuaweiCloud NS1 Rancher2 UltraDNS A10 Networks Dome9 HuaweiCloudStack Null Random Vault Bitbucket Dyn Icinga2 Nutanix RightScale Venafi Brightbox Exoscale Ignition 1&1 Rundeck VMware NSX-T CenturyLinkCloud External InfluxDB OpenStack RunScope VMware vCloud Director Chef F5 BIG-IP JDCloud OpenTelekomCloud Scaleway VMware vRA7 CherryServers Fastly Kubernetes OpsGenie Selectel VMware vSphere Circonus FlexibleEngine LaunchDarkly Oracle Cloud Infrastructure SignalFx Vultr Cisco ASA FortiOS Librato Oracle Cloud Platform Skytap Yandex Cisco ACI Genymotion Linode Oracle Public Cloud SoftLayer 出典 : HashiCorp Terraform Providers https://www.terraform.io/docs/providers/index.html
  • 10.
    10Copyright © 2019Networld Corporation All Rights Reserved. Terraform はデプロイするだけなら帰ってすぐできるぞ!
  • 11.
    Copyright © 2019Networld Corporation All Rights Reserved. 帰ってすぐできる! Terraform でプロビジョニング
  • 12.
    12Copyright © 2019Networld Corporation All Rights Reserved. 注意事項 今回紹介する内容について、 Nutanix 様 ならびに HashiCorp 様 では ノンサポートです それに、もともと OSS 版の Terraform は コミュニティサポート ( Terraform のサポートが必要な場合は Enterprise Edition を!) なぜなら、本当は Prism Element ではなく Prism Central が必要だからです 個人的に聞かれたら できるだけがんばります
  • 13.
    13Copyright © 2019Networld Corporation All Rights Reserved. 仮想マシン デプロイまでの流れ 仮想マシンのディスクイメージ化 UUID の確認 ( クラスター / ネットワーク / ディスクイメージ ) Terraform のインストール例 コードの作成 Terraform の実行 ( INIT / PLAN / APPLY )
  • 14.
    14Copyright © 2019Networld Corporation All Rights Reserved. 今回のゴール • Terraform を使って仮想マシンを コード でデプロイする
  • 15.
    15Copyright © 2019Networld Corporation All Rights Reserved. 仮想マシンのディスクイメージ化 • Terraform を使ってプロビジョニングしたい仮想マシンの テンプレート を ディスクイメージ に変換します image.create <target-img> image_type=kDiskImage clone_from_vmdisk=vm:<taget-vm>:scsi.0 ここでは <unnow-win2016template> という仮想マシンを <unnow_win2016_img> というイメージに変換しようとしている 参考ブログ : NTNX>日記 VM から Acropolis Image Service のディスクイメージを作成する。 http://blog.ntnx.jp/entry/2017/05/06/133123
  • 16.
    16Copyright © 2019Networld Corporation All Rights Reserved. UUID の確認 • AHVクラスターのUUID
  • 17.
    17Copyright © 2019Networld Corporation All Rights Reserved. UUID の確認 • ネットワークの UUID : net.list • ディスクイメージの UUID : image.list <0> という名前のネットワークに接続させたい <unnow_win2016_img> を使いたい
  • 18.
    18Copyright © 2019Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • Terraform のダウンロード https://www.terraform.io/ からダウンロード
  • 19.
    19Copyright © 2019Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 展開して生成されたフォルダーを任意の場所に配置
  • 20.
    20Copyright © 2019Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 環境変数 Path の設定
  • 21.
    21Copyright © 2019Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 動作確認 : コマンドプロンプトから “terraform -version”
  • 22.
    22Copyright © 2019Networld Corporation All Rights Reserved. コードの作成 • GitHub から [ main.tf ] と [ terraform.tfvars ] をコピペ https://github.com/unnowataru/terraform-nutanix-sample
  • 23.
    23Copyright © 2019Networld Corporation All Rights Reserved. コードの作成 • 任意のフォルダーに [ main.tf ] と [ terraform.tfvars ] をコピペして新規作成 https://github.com/unnowataru/terraform-nutanix-sample
  • 24.
    24Copyright © 2019Networld Corporation All Rights Reserved. コードの作成 • terraform.tfvars のパラメータを各環境固有のものに置き換える
  • 25.
    25Copyright © 2019Networld Corporation All Rights Reserved. Terraform INIT • コマンドプロンプトにて main.tf と terraform.tfvars を 配置したフォルダーに移動して “terraform init” を実行
  • 26.
    26Copyright © 2019Networld Corporation All Rights Reserved. Terraform INIT • “terraform init” を実行すると、Nutanixのプロバイダーに応じた プラグインが自動的にダウンロードされる
  • 27.
    27Copyright © 2019Networld Corporation All Rights Reserved. Terraform PLAN • コマンドプロンプトにて “terraform plan” を実行 • 特に問題がなければ”terraform apply”が実行可能な状態に遷移
  • 28.
    28Copyright © 2019Networld Corporation All Rights Reserved. Terraform APPLY • コマンドプロンプトにて “terraform apply” を実行
  • 29.
    29Copyright © 2019Networld Corporation All Rights Reserved. Terraform APPLY • デプロイ完了
  • 30.
    30Copyright © 2019Networld Corporation All Rights Reserved. ワンカットの DEMO VIDEO (4分ぐらい)
  • 31.
    Copyright © 2019Networld Corporation All Rights Reserved. まとめとか & 謝辞
  • 32.
    32Copyright © 2019Networld Corporation All Rights Reserved. Terraform はデプロイするだけなら帰ってすぐできるぞ!
  • 33.
    33Copyright © 2019Networld Corporation All Rights Reserved. まとめとか (初出情報多い) • 今回の Terraform 前提条件 ₋Windows 10 バージョン 1903 ₋Terraform 0.12.14 ₋Nutanix AOS 5.10.6 / AHV 20170830.279 ₋今回は Prism Element に直接接続 (サポート対象外) • オレの GitHub リポジトリ ₋https://github.com/unnowataru/terraform-nutanix-sample https://github.com/terraform-providers/terraform-provider-nutanix/blob/master/examples/main.tf