SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
株式会社ネットワールド
SI技術本部 ソリューションアーキテクト課
海野 航
Nutanix DevOps Night #1
ゼロからはじめる
Terraform での DevOps 2021
2
Copyright © 2021 Networld Corporation All Rights Reserved.
もくじ
• はじめに : DevOps と Infrastructure as Code
• Infrastructure as Code のいいところ
• Terraform × Nutanix の初歩!
AHV 仮想マシンのプロビジョニングの流れ
• HCL コードの解説
• まとめ
Copyright © 2021 Networld Corporation All Rights Reserved.
はじめに : DevOps と Infrastructure as Code
4
Copyright © 2021 Networld Corporation All Rights Reserved.
本日のポイント
DevOps を実装するための
Infrastructure as Code とは何なのかを知る
Terraform と Nutanix の 組み合わせ を知る
HashiCorp Configuration Language (HCL) を知る
5
Copyright © 2021 Networld Corporation All Rights Reserved.
DevOps と IaC の定義 (諸説ある…)
DevOps Infrastructure as Code
✓ Developer (開発者) と Operator
(運用者) が協力する、あるいはチーム
分けなどをすることなく一緒に作業を
する文化。
✓ これにより従来よりも高速にアプリや
サービスを提供することができる。
ビジネスを加速させて、より高い市場
競争力を得ることが目的。
✓ DevOps を実現する手法のひとつ。
• その他の手法には…
CI/CD、マイクロサービス、モニ
タリングとロギングなどがある。
✓ インフラをコードとして管理すること。
ここでのインフラはCPUやメモリや
ディスク、ネットワークなどを示す。
6
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform は IaC を実現するツールです
6
インフラ
CPUやメモリ、ディスクといったリソース、
あるいは仮想マシンやアプライアンスそのもの
コードで
表現すること
を
7
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform は世界での実績ナンバーワンの IaC 製品
再利用可能な
ソースコードとして
インフラの構成を
定義する
多様なインフラを
ワークフローを
変えることなく
導入する
出典 : Terraformで超サクッとループで
リソースを用意する方法
https://dev.classmethod.jp/cloud/
aws/terraform-network-variable/
出典 : Azure 上の HashiCorp Terraform
https://azure.microsoft.com/ja-
jp/solutions/devops/terraform/
エンタープライズクラウドでも Terraform 使ったらいいじゃん!
8
Copyright © 2021 Networld Corporation All Rights Reserved.
インフラを使いたい人が、セルフサービスで使えるように
8
導
入
前
導
入
後
例えば
ソフト開発者
例えば
ソフト開発者
インフラ要件
(作業指示書)
Terraform の
コード (HCL)
インフラ SE が
作業を実施
Terraform が
プロビジョニング
開発者が
要求した
リソース
開発者が
要求した
リソース
Copyright © 2021 Networld Corporation All Rights Reserved.
Infrastructure as Code のいいところ
10
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform : IaC を導入して得られる効果
• インフラ構築・改変・廃棄の 正確性とスピードの向上
• コード化によるインフラの可視化で 管理性向上
(バージョン管理やレビューが容易に)
• Nutanix やその他各種オンプレミス製品、
クラウドサービスの使用感やポリシーの統一
• これらによるコストの削減
11
Copyright © 2021 Networld Corporation All Rights Reserved.
操作手順のコピペは難しいけど、コードはコピペできる
IaC ではない Infrastructure as Code
✓ マニュアルベースによる手作業
✓ 自動化のハードルの高さ
(インフラであんまり RPA とか使わない気が…)
✓ コードベースによる高い再現性
✓ 高度に自動化され、実行が簡単
12
Copyright © 2021 Networld Corporation All Rights Reserved.
何かあったときの履歴管理、意外と重要ではありませんか?
IaC ではない Infrastructure as Code
✓ Excel や Word によるパラメータシート
✓ 人間の意識に頼る変更履歴の管理
✓ 実際のパラメータそのものを含むコード
✓ バージョン管理システムとの親和性
13
Copyright © 2021 Networld Corporation All Rights Reserved.
当たり前ですが…
• コードを作成するための時間は、手作業の数倍~数十倍かかる
(テストなども考慮する)
• 初期構築のように、一般的には1回しかやらないものを
コード化しても、現実的には効果が低い
• ツールや環境のバージョンアップに伴うコードの修正作業の発生
• イレギュラーな手作業を挟んだときに、リカバリー負荷が
高いことがある
• コードを習得するための学習コストがかかる
なんでもかんでも IaC にすればいいわけではない
14
Copyright © 2021 Networld Corporation All Rights Reserved.
HashiCorp Configuration Language
HashiCorp Terraform の専用言語
• 特徴
₋宣言型のアーキテクチャ (Ansibleは手続き型)
₋インフラの状態を宣言するように記述するようなイメージ
₋Terraform 対応してる製品やサービスが多いので、汎用性が高い
₋コード内にコメントを書きやすく、学習コストが比較的低い
₋Web 上に情報が多い
₋プロビジョニングは得意だが、OS 内の細かな設定はどちらかと言えば苦手
(そういうのはシェルを使ったり、Ansible と組み合わせる)
15
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform の最重要成果物 : TFSTATE ファイル
Terraform が管理しているリソースの状態を示すファイル
• 役割
₋Terraform によってプロビジョニングされると同時に JSON 形式で生成される
₋これを参照・比較することによって、対象となるリソースの現在の状態や
その遷移がわかる
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform × Nutanix の初歩!
AHV 仮想マシンのプロビジョニングの流れ
17
Copyright © 2021 Networld Corporation All Rights Reserved.
注意事項
今回紹介する内容について、
Nutanix ならびに HashiCorp では ノンサポートです
OSS 版の Terraform は コミュニティサポートです
( Terraform のサポートが必要な場合は有償版を!)
個人的に聞かれたら できるだけがんばります
18
Copyright © 2021 Networld Corporation All Rights Reserved.
今回の前提条件
• Terraform 環境の前提条件
₋Windows 10 バージョン 20H2
₋Terraform 0.14.8 (2021年3月17日時点で最新)
₋Nutanix AOS 5.15
• GitHub リポジトリ
₋https://github.com/unnowataru/terraform-nutanix-sample
19
Copyright © 2021 Networld Corporation All Rights Reserved.
仮想マシン プロビジョニングまでの流れ
仮想マシンのディスクイメージ化
UUID の確認と取得
( ネットワーク / ディスクイメージ )
Terraform のインストール例
コードの作成
Terraform の実行
( init / plan / apply )
20
Copyright © 2021 Networld Corporation All Rights Reserved.
このセクションのゴール
• Terraform を使って コード で VM をプロビジョニングする
21
Copyright © 2021 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
22
Copyright © 2021 Networld Corporation All Rights Reserved.
UUID の確認
• ネットワークの UUID : net.list
• ディスクイメージの UUID : image.list
<0> という名前のネットワークに接続させたい
<unnow_win2016_img> を使いたい
23
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• Terraform のダウンロード
https://www.terraform.io/ からダウンロード
24
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 展開して生成されたフォルダーを任意の場所に配置
25
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 環境変数 Path の設定
26
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のインストール例 (Windows 環境)
• 動作確認 : コマンドプロンプトから “terraform -version”
27
Copyright © 2021 Networld Corporation All Rights Reserved.
コードの作成
• GitHub から [ main.tf ] と [ terraform.tfvars ] と
[ versions.tf ] をコピペ
https://github.com/unnowataru/terraform-nutanix-sample
28
Copyright © 2021 Networld Corporation All Rights Reserved.
コードの作成
• 任意のフォルダーに [ main.tf ] と [ terraform.tfvars ] と
[ versions.tf ] をコピペして新規作成
https://github.com/unnowataru/terraform-nutanix-sample
29
Copyright © 2021 Networld Corporation All Rights Reserved.
コードの作成
• terraform.tfvars のパラメータを各環境固有のものに置き換える
30
Copyright © 2021 Networld Corporation All Rights Reserved.
terraform init
• コマンドプロンプトにて main.tf と terraform.tfvars を
配置したフォルダーに移動して “terraform init” を実行
31
Copyright © 2021 Networld Corporation All Rights Reserved.
terraform init
• “terraform init” を実行すると、Nutanixのプロバイダーに応じた
プラグインが自動的にダウンロードされる
32
Copyright © 2021 Networld Corporation All Rights Reserved.
terraform plan
• コマンドプロンプトにて “terraform plan” を実行
• 特に問題がなければ”terraform apply”が実行可能な状態に遷移
33
Copyright © 2021 Networld Corporation All Rights Reserved.
terraform apply
• コマンドプロンプトにて “terraform apply” を実行
34
Copyright © 2021 Networld Corporation All Rights Reserved.
terraform apply
• プロビジョニング完了
35
Copyright © 2021 Networld Corporation All Rights Reserved.
DEMO VIDEO (4分ぐらい)
Copyright © 2021 Networld Corporation All Rights Reserved.
HCL コードの解説
37
Copyright © 2021 Networld Corporation All Rights Reserved.
ちょっとテクニカルな解説 : Terraform のコード
37
provider : 対象製品を定義
variable : 変数を定義
data : 既存リソースから情報を取り込む
resource : 実際に作成するリソースを記述
38
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のコード解説 : main.tf
variable : 変数を定義するセクション
ユーザー名やクラスターの情報、プロビジョニングしたい仮想マシンの
名前、スペックやネットワークなどを変数として定義している。
39
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のコード解説 : main.tf
provider : インフラを定義するセクション
ここでは nutanix としているが、AWS や Azure など
プロビジョニング対象となるインフラをここで定義する。
ポートをデフォルトから変更している場合は注意しましょう。
40
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のコード解説 : main.tf
data : 既存のリソースから情報を取り込む
変数で指定したオブジェクトから情報を取り込み、プロビジョニングに
利用できるようにする。
この例では、既存のクラスターの情報を確認し、プロビジョニングする
対象のクラスターとして設定している。
41
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のコード解説 : main.tf
resource : 実際に作成するリソースを定義
変数で指定した情報や data で取り込んだ情報を利用して、対象となる
インフラにリソースをプロビジョニング(作成)する。
当然のことながら、HCLはプログラミング言語なので、演算子なども
きちんと使える。
ここでは変数 “count” に応じて仮想マシンの名前を1から指定した数字
まで、前ゼロ3桁でプロビジョニングするような仕組みになっている。
HCLで定義されている文字列 自分で名前を付けるオブジェクト
42
Copyright © 2021 Networld Corporation All Rights Reserved.
Terraform のコード解説 : terraform.tfvars
パスワードやアクセスキーのお漏らしには注意しましょう!!
Copyright © 2021 Networld Corporation All Rights Reserved.
まとめ と ポイント
44
Copyright © 2021 Networld Corporation All Rights Reserved.
ポイント
• OSS 版 Terraform 単体では CI/CD を実現する
ハードルが高いので、Terraform Cloud や その他の
CI/CD ツールと組み合わせて実装する
• とりあえず Terraform で AHV の仮想マシンを
プロビジョニングするだけなら比較的カンタン
45
Copyright © 2021 Networld Corporation All Rights Reserved.
まとめ Terraform を導入して得られる効果
• インフラ構築・改変・廃棄の 正確性とスピードの向上
• コード化によるインフラの可視化で 管理性向上
(バージョン管理やレビューが容易に)
• Nutanix やその他各種オンプレミス製品、
クラウドサービスの使用感やポリシーの統一
• これらによるコストの削減
Terraform によるプロビジョニングと管理はあくまでも手段!
本当に目指すべきは DevOps によるビジネスの加速!
ゼロからはじめるTerraformでのDevOps2021

Weitere ähnliche Inhalte

Was ist angesagt?

高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマットAkihiro Suda
 
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチTakeshi Morikawa
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方Yuji Oshima
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!Kohei Tokunaga
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜Megagon Labs
 
PaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyPaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyKatsunori Kawaguchi
 
OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級Takashi Natsume
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred NetworksPreferred Networks
 
Dockerのネットワークについて
DockerのネットワークについてDockerのネットワークについて
DockerのネットワークについてNobuyuki Matsui
 
20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present futureAkihiro Motoki
 
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理Yuki Yamashita
 
Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題Asuka Suzuki
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側masahito12
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況Akihiro Suda
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介ThinkIT_impress
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Akihiro Suda
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 

Was ist angesagt? (20)

高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
 
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
Upstream University
Upstream UniversityUpstream University
Upstream University
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
 
Moby Project
Moby ProjectMoby Project
Moby Project
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 
PaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happyPaaS / Cloud Foundry makes you happy
PaaS / Cloud Foundry makes you happy
 
OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
 
Dockerのネットワークについて
DockerのネットワークについてDockerのネットワークについて
Dockerのネットワークについて
 
20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present future
 
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
 
Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 

Ähnlich wie ゼロからはじめるTerraformでのDevOps2021

Provisioning Nutanix VMs with Terraform
Provisioning Nutanix VMs with TerraformProvisioning Nutanix VMs with Terraform
Provisioning Nutanix VMs with TerraformWataru Unno
 
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereQuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereWataru Unno
 
基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptxYuji Naito
 
Nutanix Meetup 22.01 Wataru Unno
Nutanix Meetup 22.01 Wataru UnnoNutanix Meetup 22.01 Wataru Unno
Nutanix Meetup 22.01 Wataru UnnoWataru Unno
 
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform CloudWataru Unno
 
Netapp rancher agenda_210129
Netapp rancher agenda_210129Netapp rancher agenda_210129
Netapp rancher agenda_210129Junji Nishihara
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望Tetsuo Yamabe
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...NTT DATA Technology & Innovation
 
20140826 it pro_expo_rev2
20140826 it pro_expo_rev220140826 it pro_expo_rev2
20140826 it pro_expo_rev2Takano Masaru
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたNaruto TAKAHASHI
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)Hiroshi Hayakawa
 
MSC2014_NetApp_Session
MSC2014_NetApp_SessionMSC2014_NetApp_Session
MSC2014_NetApp_SessionTakano Masaru
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組みTakayuki Shimizukawa
 
みんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜみんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜTakamasa Sakai
 
コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響Masahito Zembutsu
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 

Ähnlich wie ゼロからはじめるTerraformでのDevOps2021 (20)

Provisioning Nutanix VMs with Terraform
Provisioning Nutanix VMs with TerraformProvisioning Nutanix VMs with Terraform
Provisioning Nutanix VMs with Terraform
 
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereQuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
 
基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx
 
Nutanix Meetup 22.01 Wataru Unno
Nutanix Meetup 22.01 Wataru UnnoNutanix Meetup 22.01 Wataru Unno
Nutanix Meetup 22.01 Wataru Unno
 
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
 
Netapp rancher agenda_210129
Netapp rancher agenda_210129Netapp rancher agenda_210129
Netapp rancher agenda_210129
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
 
20140826 it pro_expo_rev2
20140826 it pro_expo_rev220140826 it pro_expo_rev2
20140826 it pro_expo_rev2
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
 
MSC2014_NetApp_Session
MSC2014_NetApp_SessionMSC2014_NetApp_Session
MSC2014_NetApp_Session
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
みんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜみんなのTerraformで AWSをテラフォーミングさせるぜ
みんなのTerraformで AWSをテラフォーミングさせるぜ
 
コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 

Kürzlich hochgeladen

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

ゼロからはじめるTerraformでのDevOps2021

  • 2. 2 Copyright © 2021 Networld Corporation All Rights Reserved. もくじ • はじめに : DevOps と Infrastructure as Code • Infrastructure as Code のいいところ • Terraform × Nutanix の初歩! AHV 仮想マシンのプロビジョニングの流れ • HCL コードの解説 • まとめ
  • 3. Copyright © 2021 Networld Corporation All Rights Reserved. はじめに : DevOps と Infrastructure as Code
  • 4. 4 Copyright © 2021 Networld Corporation All Rights Reserved. 本日のポイント DevOps を実装するための Infrastructure as Code とは何なのかを知る Terraform と Nutanix の 組み合わせ を知る HashiCorp Configuration Language (HCL) を知る
  • 5. 5 Copyright © 2021 Networld Corporation All Rights Reserved. DevOps と IaC の定義 (諸説ある…) DevOps Infrastructure as Code ✓ Developer (開発者) と Operator (運用者) が協力する、あるいはチーム 分けなどをすることなく一緒に作業を する文化。 ✓ これにより従来よりも高速にアプリや サービスを提供することができる。 ビジネスを加速させて、より高い市場 競争力を得ることが目的。 ✓ DevOps を実現する手法のひとつ。 • その他の手法には… CI/CD、マイクロサービス、モニ タリングとロギングなどがある。 ✓ インフラをコードとして管理すること。 ここでのインフラはCPUやメモリや ディスク、ネットワークなどを示す。
  • 6. 6 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform は IaC を実現するツールです 6 インフラ CPUやメモリ、ディスクといったリソース、 あるいは仮想マシンやアプライアンスそのもの コードで 表現すること を
  • 7. 7 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform は世界での実績ナンバーワンの IaC 製品 再利用可能な ソースコードとして インフラの構成を 定義する 多様なインフラを ワークフローを 変えることなく 導入する 出典 : Terraformで超サクッとループで リソースを用意する方法 https://dev.classmethod.jp/cloud/ aws/terraform-network-variable/ 出典 : Azure 上の HashiCorp Terraform https://azure.microsoft.com/ja- jp/solutions/devops/terraform/ エンタープライズクラウドでも Terraform 使ったらいいじゃん!
  • 8. 8 Copyright © 2021 Networld Corporation All Rights Reserved. インフラを使いたい人が、セルフサービスで使えるように 8 導 入 前 導 入 後 例えば ソフト開発者 例えば ソフト開発者 インフラ要件 (作業指示書) Terraform の コード (HCL) インフラ SE が 作業を実施 Terraform が プロビジョニング 開発者が 要求した リソース 開発者が 要求した リソース
  • 9. Copyright © 2021 Networld Corporation All Rights Reserved. Infrastructure as Code のいいところ
  • 10. 10 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform : IaC を導入して得られる効果 • インフラ構築・改変・廃棄の 正確性とスピードの向上 • コード化によるインフラの可視化で 管理性向上 (バージョン管理やレビューが容易に) • Nutanix やその他各種オンプレミス製品、 クラウドサービスの使用感やポリシーの統一 • これらによるコストの削減
  • 11. 11 Copyright © 2021 Networld Corporation All Rights Reserved. 操作手順のコピペは難しいけど、コードはコピペできる IaC ではない Infrastructure as Code ✓ マニュアルベースによる手作業 ✓ 自動化のハードルの高さ (インフラであんまり RPA とか使わない気が…) ✓ コードベースによる高い再現性 ✓ 高度に自動化され、実行が簡単
  • 12. 12 Copyright © 2021 Networld Corporation All Rights Reserved. 何かあったときの履歴管理、意外と重要ではありませんか? IaC ではない Infrastructure as Code ✓ Excel や Word によるパラメータシート ✓ 人間の意識に頼る変更履歴の管理 ✓ 実際のパラメータそのものを含むコード ✓ バージョン管理システムとの親和性
  • 13. 13 Copyright © 2021 Networld Corporation All Rights Reserved. 当たり前ですが… • コードを作成するための時間は、手作業の数倍~数十倍かかる (テストなども考慮する) • 初期構築のように、一般的には1回しかやらないものを コード化しても、現実的には効果が低い • ツールや環境のバージョンアップに伴うコードの修正作業の発生 • イレギュラーな手作業を挟んだときに、リカバリー負荷が 高いことがある • コードを習得するための学習コストがかかる なんでもかんでも IaC にすればいいわけではない
  • 14. 14 Copyright © 2021 Networld Corporation All Rights Reserved. HashiCorp Configuration Language HashiCorp Terraform の専用言語 • 特徴 ₋宣言型のアーキテクチャ (Ansibleは手続き型) ₋インフラの状態を宣言するように記述するようなイメージ ₋Terraform 対応してる製品やサービスが多いので、汎用性が高い ₋コード内にコメントを書きやすく、学習コストが比較的低い ₋Web 上に情報が多い ₋プロビジョニングは得意だが、OS 内の細かな設定はどちらかと言えば苦手 (そういうのはシェルを使ったり、Ansible と組み合わせる)
  • 15. 15 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform の最重要成果物 : TFSTATE ファイル Terraform が管理しているリソースの状態を示すファイル • 役割 ₋Terraform によってプロビジョニングされると同時に JSON 形式で生成される ₋これを参照・比較することによって、対象となるリソースの現在の状態や その遷移がわかる
  • 16. Copyright © 2021 Networld Corporation All Rights Reserved. Terraform × Nutanix の初歩! AHV 仮想マシンのプロビジョニングの流れ
  • 17. 17 Copyright © 2021 Networld Corporation All Rights Reserved. 注意事項 今回紹介する内容について、 Nutanix ならびに HashiCorp では ノンサポートです OSS 版の Terraform は コミュニティサポートです ( Terraform のサポートが必要な場合は有償版を!) 個人的に聞かれたら できるだけがんばります
  • 18. 18 Copyright © 2021 Networld Corporation All Rights Reserved. 今回の前提条件 • Terraform 環境の前提条件 ₋Windows 10 バージョン 20H2 ₋Terraform 0.14.8 (2021年3月17日時点で最新) ₋Nutanix AOS 5.15 • GitHub リポジトリ ₋https://github.com/unnowataru/terraform-nutanix-sample
  • 19. 19 Copyright © 2021 Networld Corporation All Rights Reserved. 仮想マシン プロビジョニングまでの流れ 仮想マシンのディスクイメージ化 UUID の確認と取得 ( ネットワーク / ディスクイメージ ) Terraform のインストール例 コードの作成 Terraform の実行 ( init / plan / apply )
  • 20. 20 Copyright © 2021 Networld Corporation All Rights Reserved. このセクションのゴール • Terraform を使って コード で VM をプロビジョニングする
  • 21. 21 Copyright © 2021 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
  • 22. 22 Copyright © 2021 Networld Corporation All Rights Reserved. UUID の確認 • ネットワークの UUID : net.list • ディスクイメージの UUID : image.list <0> という名前のネットワークに接続させたい <unnow_win2016_img> を使いたい
  • 23. 23 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • Terraform のダウンロード https://www.terraform.io/ からダウンロード
  • 24. 24 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 展開して生成されたフォルダーを任意の場所に配置
  • 25. 25 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 環境変数 Path の設定
  • 26. 26 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のインストール例 (Windows 環境) • 動作確認 : コマンドプロンプトから “terraform -version”
  • 27. 27 Copyright © 2021 Networld Corporation All Rights Reserved. コードの作成 • GitHub から [ main.tf ] と [ terraform.tfvars ] と [ versions.tf ] をコピペ https://github.com/unnowataru/terraform-nutanix-sample
  • 28. 28 Copyright © 2021 Networld Corporation All Rights Reserved. コードの作成 • 任意のフォルダーに [ main.tf ] と [ terraform.tfvars ] と [ versions.tf ] をコピペして新規作成 https://github.com/unnowataru/terraform-nutanix-sample
  • 29. 29 Copyright © 2021 Networld Corporation All Rights Reserved. コードの作成 • terraform.tfvars のパラメータを各環境固有のものに置き換える
  • 30. 30 Copyright © 2021 Networld Corporation All Rights Reserved. terraform init • コマンドプロンプトにて main.tf と terraform.tfvars を 配置したフォルダーに移動して “terraform init” を実行
  • 31. 31 Copyright © 2021 Networld Corporation All Rights Reserved. terraform init • “terraform init” を実行すると、Nutanixのプロバイダーに応じた プラグインが自動的にダウンロードされる
  • 32. 32 Copyright © 2021 Networld Corporation All Rights Reserved. terraform plan • コマンドプロンプトにて “terraform plan” を実行 • 特に問題がなければ”terraform apply”が実行可能な状態に遷移
  • 33. 33 Copyright © 2021 Networld Corporation All Rights Reserved. terraform apply • コマンドプロンプトにて “terraform apply” を実行
  • 34. 34 Copyright © 2021 Networld Corporation All Rights Reserved. terraform apply • プロビジョニング完了
  • 35. 35 Copyright © 2021 Networld Corporation All Rights Reserved. DEMO VIDEO (4分ぐらい)
  • 36. Copyright © 2021 Networld Corporation All Rights Reserved. HCL コードの解説
  • 37. 37 Copyright © 2021 Networld Corporation All Rights Reserved. ちょっとテクニカルな解説 : Terraform のコード 37 provider : 対象製品を定義 variable : 変数を定義 data : 既存リソースから情報を取り込む resource : 実際に作成するリソースを記述
  • 38. 38 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のコード解説 : main.tf variable : 変数を定義するセクション ユーザー名やクラスターの情報、プロビジョニングしたい仮想マシンの 名前、スペックやネットワークなどを変数として定義している。
  • 39. 39 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のコード解説 : main.tf provider : インフラを定義するセクション ここでは nutanix としているが、AWS や Azure など プロビジョニング対象となるインフラをここで定義する。 ポートをデフォルトから変更している場合は注意しましょう。
  • 40. 40 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のコード解説 : main.tf data : 既存のリソースから情報を取り込む 変数で指定したオブジェクトから情報を取り込み、プロビジョニングに 利用できるようにする。 この例では、既存のクラスターの情報を確認し、プロビジョニングする 対象のクラスターとして設定している。
  • 41. 41 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のコード解説 : main.tf resource : 実際に作成するリソースを定義 変数で指定した情報や data で取り込んだ情報を利用して、対象となる インフラにリソースをプロビジョニング(作成)する。 当然のことながら、HCLはプログラミング言語なので、演算子なども きちんと使える。 ここでは変数 “count” に応じて仮想マシンの名前を1から指定した数字 まで、前ゼロ3桁でプロビジョニングするような仕組みになっている。 HCLで定義されている文字列 自分で名前を付けるオブジェクト
  • 42. 42 Copyright © 2021 Networld Corporation All Rights Reserved. Terraform のコード解説 : terraform.tfvars パスワードやアクセスキーのお漏らしには注意しましょう!!
  • 43. Copyright © 2021 Networld Corporation All Rights Reserved. まとめ と ポイント
  • 44. 44 Copyright © 2021 Networld Corporation All Rights Reserved. ポイント • OSS 版 Terraform 単体では CI/CD を実現する ハードルが高いので、Terraform Cloud や その他の CI/CD ツールと組み合わせて実装する • とりあえず Terraform で AHV の仮想マシンを プロビジョニングするだけなら比較的カンタン
  • 45. 45 Copyright © 2021 Networld Corporation All Rights Reserved. まとめ Terraform を導入して得られる効果 • インフラ構築・改変・廃棄の 正確性とスピードの向上 • コード化によるインフラの可視化で 管理性向上 (バージョン管理やレビューが容易に) • Nutanix やその他各種オンプレミス製品、 クラウドサービスの使用感やポリシーの統一 • これらによるコストの削減 Terraform によるプロビジョニングと管理はあくまでも手段! 本当に目指すべきは DevOps によるビジネスの加速!