Slide 1

Slide 1 text

VagrantとTerraform 私の活用法 日本IBM株式会社 クラウド&コグニティブソフトウェア事業部 高良 真穂 IBM Cloudでも TFが使えるよ User Group 7月3日(金) 15:15 ~ 15:30 https://hashicorp.connpass.com/event/178303/

Slide 2

Slide 2 text

お話する人 たから まほ 高良 真穂 IBM Cloud テクニカルセールス & エバンジェリスト 通称 コンテナおじさん 所属 日本アイ・ビー・エム株式会社 クラウド&コグニティブソフトウェア事業本部

Slide 3

Slide 3 text

3 Vagrant vs Terraform Vagrant ローカルの仮想環境操作を抽象化 Terraform クラウドの仮想環境操作を抽象化

Slide 4

Slide 4 text

Vagrantは開発者WSの仮想環境フロントエンド Windows / macOS / Linux 仮想環境 VirtualBox / Hyper-V / VMware サーバーOS設定 アプリケーション OpenShift/K8s等

Slide 5

Slide 5 text

Terraformはクラウド操作のフロントエンド クラウドプロバイダー 仮想環境 (VM / VPC) サーバーOS設定 アプリケーション OpenShift/K8s等

Slide 6

Slide 6 text

私のVagrant 活用法

Slide 7

Slide 7 text

著書の中で、 マルチノード Kubernetes クラスタの 学習環境として活用 Master Node1 Node2 パソコンOS ハイパーバイザー HVフロントエンド 仮想マシン Linux OS コンテナ実行環境 コンテナ・オーケストレータ 役割 マルチノード Kubernetes学習環境 Windows / macOS Virtual Box Vagrant Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes

Slide 8

Slide 8 text

Vagrantで学習環境を作った理由 Master Node1 Node2 パソコンOS ハイパーバイザー HVフロントエンド 仮想マシン Linux OS コンテナ実行環境 コンテナ・オーケストレータ 役割 マルチノード Kubernetes学習環境 Windows / macOS Virtual Box Vagrant Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes • クラウドの課金を心配せずに利用できる • マスターノードに入って確認できる • マルチノードのノード障害の振る舞いを確認できる • クラスタの一部を壊して影響の確認ができる • 読者自身がソフトウェア構成を変更できる

Slide 9

Slide 9 text

VagrantのK8s学習環境はGitHubで公開 https://github.com/takara9/vagrant-kubernetes

Slide 10

Slide 10 text

vagrant up 複数ホスト起動 VMのスペックを配列に書いて 様々な条件のクラスタ構成可能 ループの中で条件を変えながら K8sクラスタのノードを起動

Slide 11

Slide 11 text

VagrantからAnsibleを実行して K8sクラスタ構築 Upstream Kubernetes の インストールとセットアップは 後続のAnsibleで実施 VagarntfileにAnsible の条件を設定できる 必要に応じてShellも実行可能

Slide 12

Slide 12 text

起動できるK8sクラスタ環境 .11 Host Only 172.16.20.0/24 enp0s8 ホスト名 master enp0s3 10.0.2.15 CPU Core x2 RAM 2GB OS Ubuntu 16.04 NAT enp0s9 .91 Bridged 192.168.1.0/24 .12 enp0s8 ホスト名 node1 enp0s3 CPU Core x1 RAM 1GB OS Ubuntu 16.04 NAT enp0s9 .92 .13 enp0s8 ホスト名 node2 enp0s3 CPU Core x1 RAM 1GB OS Ubuntu 16.04 NAT enp0s9 .93 10.0.2.15 10.0.2.15 192.168.1.0/24 BBルータ インターネット ブロードバンドルータのネットワーク パソコン内の仮想マシンとネットワーク環境 BBルータのDHCPで、パソコンにアサインされたIPアドレス .25 ブリッジ DHCP 192.168.1.25 パソコン Static 192.168.1.91 master Static 192.168.1.92 node1 Static 192.168.1.93 node2 この仮想環境で利用するBBルータ上のIPアドレス

Slide 13

Slide 13 text

他にストレージ環境も

Slide 14

Slide 14 text

私のTerraform 活用法

Slide 15

Slide 15 text

©︎ 2019 IBM Corporation どのクラウドでも、何回でも同じものが作れる 200を超える プラグインで 様々な環境で 使える IBM Cloudは リストに 載っていないよ

Slide 16

Slide 16 text

Terraform の役割 ✓ クラウドの仮想環境操作を抽象化 Azure, GCP, AWS の操作を共通化 IBM Cloudでも利用可能 • え ✓ クラウド環境構築と管理の自動化 Infrastructure as Codeとしてクラウドを設定 目的状態を記述することで変更や追加も管理 ✓ オーケストレーション クラウドのネットワーク、VPC、サービス そして、仮想サーバーのセットを自動構築

Slide 17

Slide 17 text

プロバイダ・プラグインを変更すれば同じフローで管理可能 テンプレート Terraform コマンド IBM プロバイダ プラグイン IBM Cloud API Endpoint コマンド実行 プロビジョニング実施 目的状態 Terraform コマンド AWS プロバイダ プラグイン AWS API Endpoint main.tf パラメータ

Slide 18

Slide 18 text

こんなQiitaの記事を書きました https://qiita.com/MahoTakara/items/17b3ac66a55d4d8b02d7 https://qiita.com/MahoTakara/items/0b23d9bca3edcfe0081c

Slide 19

Slide 19 text

IBM Cloud の Terraform利用 https://cloud.ibm.com/docs/schematics?topic=schemati cs-create-tf-config&locale=ja

Slide 20

Slide 20 text

IBM Cloud の Terraform利用 https://ibm-cloud.github.io/tf-ibm-docs/index.html

Slide 21

Slide 21 text

Terraformも目的状態をテンプレートに記述して、状態を一致 させる宣言的な定義なため、構築・変更・削除が簡単 main.tf テンプレート Terraform コマンド IBM プロバイダ プラグイン IBM Cloud API Endpoint コマンド実行 プロビジョニング実施 目的状態 デプロイ パラメータ

Slide 22

Slide 22 text

お手本がないと いきなり コード 書けないよ

Slide 23

Slide 23 text

IBM Cloud Terraformサンプル https://github.com/IBM-Cloud/terraform- provider-ibm/tree/master/examples

Slide 24

Slide 24 text

IBMクラウドでTFを使う には2つ方法がある 1 コマンドラインツール 2 IBM Cloud Schematic

Slide 25

Slide 25 text

Terraform を簡単運用 IBM Cloud Schematics

Slide 26

Slide 26 text

IBM Cloud Schematicは TFのコードを書くことを 不要にするのではなく、 テンプレートからの実体化 とリソースの変更管理

Slide 27

Slide 27 text

IBM Cloud Schematics ワークスペースの作成画面 ここにGitHubのTFテンプレートのURLを設定 GitHubのREADME.md を読んで TFバージョンを指定

Slide 28

Slide 28 text

IBM Cloud Schematics Terraform テンプレート適用

Slide 29

Slide 29 text

リファレンスアーキテクチャを Terraform を使って 何処でも誰でも構築できる。 VM VM VM

Slide 30

Slide 30 text

まとめ • Vagrantは K8s学習環境の構築に最適 • Terraform は IBM Cloudで利用可能 • IBM Cloud Schematics は Terraform管 理支援 • IBM Cloud では リファレンスアーキテク チャーをTerraformのターンキーで起動 パーソナルな

Slide 31

Slide 31 text

No content