Exastro × Terraform × Ansibleで実現する
マルチクラウドシステムプロビジョニング

アジェンダ

1.マルチクラウドとは？
2.Exastro・Terraformについて
3.デモ

マルチクラウドへの期待って？
マルチクラウド“複数のパブリッククラウドを使い分ける利用形態。データ通信量の分散、データ消失・システムダウンのリスク分散などの利点がある。 ” 引用：「デジタル大辞泉」

Exastro3

マルチクラウドへのさらなる期待 その１
パブリッククラウドの利用において、“コスト”は非常に重要な観点。
コストが安い機能の選択により、削減効果を見込める可能性あり。

Exastro4

マルチクラウドへのさらなる期待 その２それぞれのパブリッククラウドごとに用意されている固有の機能を利用し、システムの構築を有利・スピーディに進めることができる。

Exastro5

マルチクラウドにおける課題とは？
マルチクラウドは以下のような問題を抱えているエンジニアのスキル問題(※1)
導入までの遅れ(※2)
クラウドの管理や可視化(※3)(※1) https://www.denodo.com/ja/document/whitepaper/denodo-global-cloud-survey-2020(※2) https://japan.zdnet.com/article/35163287/(※3) https://techtarget.itmedia.co.jp/tt/news/1908/30/news05.html

マルチクラウドの標準化・自動化・構成管理が必要とされている
Exastro6

マルチクラウドの構築に効果的なツールとは？

https://www.slideshare.net/hashicorpjp/terraform-enterprisehttps://www.terraform.io/
Exastro7

Exastro IT Automation：システム情報をデジタル管理するためのフレームワーク

Exastro8

Exastro IT Automation：システム情報をデジタル管理するためのフレームワーク

Exastro IT Automationの提供価値はココ！
IaC／PaCをライブラリ化して再利用可能なように管理
変数に適用するパラメータ値を一元管理

Exastro9

Exastro IT Automation：システム情報をデジタル管理するためのフレームワーク

構成管理ツールとして最も密に連携してきた「Red Hat Ansible Automation Platform」に加え、Ansibleと相互補完し合えるオーケストレーションツールとして「Terraform Enterprise」との連携活用が可能となっています
Exastro10

Exastro IT Automation：システムスタックと使用するメソッド
MethodSystemCMDB

Application

Application

System Parameters

PaaS
Controller

MicroService

Micro
Service

IaaS
Controller

Conductor

Virtual
Network

MicroService
Micro
Service

Micro
Service

VirtualStorage

Middleware

Operation
SystemVirtualMachineStart

ExastroEnd

Hardware(Job Flow)11

Exastro ITAからAnsibleとTerraformを相互補完して活用するということは？

Terraformの役割
Method パブリッククラウドをまたがるリソースのCMDB
オーケストレイティングを、共通の言語
System Parameters(HCL)で記述できる
PaaS
Controller

SystemMicroService

Micro
Service

IaaS
Controller

ConductorApplication

Application

Virtual
Network

MicroService
Micro
Service

Micro
Service

VirtualStorage

Middleware

Operation
SystemVirtualMachineStart

ExastroEnd

Hardware(Job Flow)

パブリック

12

Exastro ITAからAnsibleとTerraformを相互補完して活用するということは？
MethodSystemCMDB

System Parameters
Ansibleの役割
 プロビジョニングしたリソースに対し細かい自動セッティングが可能

PaaS
Controller

IaaS
Controller

Conductor

Application

Application

Micro
Service

Micro
Service

Virtual
Network

MicroService
Micro
Service

Micro
Service

VirtualStorage

Middleware

Operation
SystemVirtualMachineStart

ExastroEnd

Hardware(Job Flow)

13

Exastro ITAからAnsibleとTerraformを相互補完して活用するということは？
MethodCMDB

SystemExastro IT Automationの役割①

Application

ApplicationSystem Parameters

 AnsibleやTerraformを1本のジョブフローとして定義できる
PaaS
Micro
Service

Controller
e.g. Terraformでリソースを払い出してMicro
Service
Micro
Ansibleで細かな設定を入れるService

IaaS
Controller

Conductor

Virtual
Network

MicroService

Micro
Service

VirtualStorage

Middleware

Operation
SystemVirtualMachineStart

ExastroEnd

Hardware(Job Flow)

14

Exastro ITAからAnsibleとTerraformを相互補完して活用するということは？
MethodCMDB

SystemApplication

Application

Exastro IT Automationの役割②System Parameters

 IaC／PaCをライブラリ化して再利用可能なように管理
PaaS
 変数に適用するパラメータ値を一元管理
Controller
MicroService

Micro
Service

IaaS
Controller

Conductor

Virtual
Network

MicroService

Micro
Service

Micro
Service

VirtualStorage

Middleware

OperationSystem

VirtualMachine

Start

ExastroEndHardware(Job Flow)15[参考]Exastro IT Automation 関連記事
Exastro IT Automationをインストールしてみた（v1.6.0）
Exastro IT Automationを実際に動かしてみた(クイックスタート)
Exastro IT Automation ver1.6.0のキホンの"キ“
Exastro × Ansibleでやってみよう♪ ネットワーク機器の自動設定
Exastroコミュニティ (Github)Exastro16

デモ

デモ環境の構成イメージ
詳細は以下Qiita記事へ。
「マルチクラウドプロビジョニング(AWS＋Azure)を「Exastro×Terraform×Ansible」で実施してみた」

https://qiita.com/standsetx/items/5e20e9c30bb5efa9b12f

Exastro18

初期状態について～デモ～
デモ実施前の状態
AWS：何も起動していない状態
Azure：何も起動していない状態

Exastro19

まずは実行してみよう～デモ～
設定済みのConductorを実行してみる
AWS：3インスタンスデプロイ→WebサーバセッティングAzure：3インスタンスデプロイ→Webサーバセッティング

Exastro20

Conductor(ジョブフロー)について
3つのサブConductorから構成されるConductor
サブConductor①：AWSプロビ＋機器一覧登録
マルチクラウドプロビジョニングConductor

サブConductor③：
・全インスタンス(AWS+Azure)をWebサーバ化
・コンテンツの配布

サブConductor②：Azureプロビ＋機器一覧登録

Exastro21

Terraformについて
リソースのデプロイを行うために“tfstate”と呼ばれるファイルを作成
stateファイルはOrganization及びWorkSpaceに所属する

Exastro22

Terraform Driverの利用～デモ～
Terraformドライバを利用して以下のセッティング接続情報（Token)
Organizationの登録
WorkSpaceの作成
Movementの設定

Exastro23

Terraform Module素材(IaC)について
AWS用：
aws_create_instance_variables.tf ・・・変数定義ファイル
aws_create_instance.tf ・・・AWSインスタンス作成用リソース定義ファイル

Azure用：azure_create_instance_variables.tf ・・・変数定義ファイル
azure_create_instance.tf ・・・Azureインスタンス作成用リソース定義ファイル

Exastro24

（参考）aws_create_instance_variables.tf（変数定義用）

Exastro25

（参考） aws_create_instance.tf（リソース定義ファイル）

Exastro26

（参考） azure_create_instance_variables.tf （変数定義用）

Exastro27

（参考） azure_create_instance.tf（リソース定義ファイル）

Exastro28

Terraform Driverの利用②～デモ～
Terraformドライバを利用して以下のセッティングパラメータシート
代入値自動登録設定

Exastro29

[Tips] パラメータシートについて
Terraform用パラメータシートとAnsible用パラメータシートは別で作成「パラメータシート（オペレーションあり）」
で作成する「パラメータシート（ホスト/オペレーションあり）」
で作成する

Exastro30

Conductorの利用②～デモ～パラメータシートを変更して再デプロイしてみる
AWS：5インスタンスデプロイ→WebサーバセッティングAzure：1インスタンスデプロイ→Webサーバセッティング

Exastro31

Ansible Driverの利用～デモ～
Ansibleドライバを利用して以下のセッティングMovementパラメータシート
代入値自動登録

Exastro32

Conductorの設定～デモ～
Conductorの準備
サブConductor/Movement
メインConductor

Exastro33

（再掲）Conductor(ジョブフロー)について
3つのサブConductorから構成されるConductor
マルチクラウドプロビジョニングConductor

Exastro34

[Tips] Conductor内でデータを受け渡しするMovement間で情報/ファイルの受け渡し場所に“__conductor_workflowdir__”が利用可能
Conductor毎に払い出される<ConductorWorkDir>/VM_list.txt

Exastro35