Terraform × cloud-init で VM のセットアップをいい感じにする話
by
cyokozai
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Terraform × cloud-init で VM のセットアップを いい感じにする話 v2.1 井上 裕介 a.k.a cyokozai 第57回 情報科学若手の会
Slide 2
Slide 2 text
自己紹介 井上 裕介 a.k.a cyokozai cyokozai @cyokozai0 千葉工業大学 情報工学科 B4 ネットワークコンテンツ研究会 Nekko Cloud Team 株式会社スリーシェイク sreake事業部 学生インターン生 RCME アルバイト研究員
Slide 3
Slide 3 text
アジェンダ アジェンダ マルチリージョンプライベートクラウド Nekko Cloud の紹介 VM 作成の苦労話話 IaC の導入と実践 おわりに
Slide 4
Slide 4 text
ネットワークコンテンツ研究会 Nekko Cloud Team
Slide 5
Slide 5 text
ネットワークコンテンツ研究会 Nekko Cloud Team マルチリージョンプライベートクラウド Nekko Cloud の紹介
Slide 6
Slide 6 text
Nekko Cloud Teamでは マルチリージョンプライベートクラウド Nekko Cloud の紹介
Slide 7
Slide 7 text
Nekko Cloud Teamでは マルチリージョンプライベートクラウド Nekko Cloud の紹介 い わ ゆ る 逸 般 の 誤 家 庭 が 4 人 い る
Slide 8
Slide 8 text
Nekko Cloud Teamでは マルチリージョンプライベートクラウド Nekko Cloud の紹介 い わ ゆ る 逸 般 の 誤 家 庭 が 4 人 い る
Slide 9
Slide 9 text
マルチリージョンプライベートクラウド Nekko Cloud の紹介 メンバーの所有するサーバを VPNでつないでプライベート クラウドを制作 クラウドの設計・開発・運用を 通してクラウド技術を学ぼう! チームメンバーにクラウド リソースを提供
Slide 10
Slide 10 text
マルチリージョンプライベートクラウド Nekko Cloud の紹介 新規リージョン募集中!
Slide 11
Slide 11 text
VM 作成の苦労話
Slide 12
Slide 12 text
手動でVMを立てるには(Proxmox VEの場合) VM 作成の苦労話 ISOイメージをProxmox VEにアップロード
Slide 13
Slide 13 text
手動でVMを立てるには(Proxmox VEの場合) VM 作成の苦労話 「VMを作成」をクリック コレ
Slide 14
Slide 14 text
手動でVMを立てるには(Proxmox VEの場合) VM 作成の苦労話 VMの設定をする (コア数、メモリ数、ネットワーク etc…)
Slide 15
Slide 15 text
手動でVMを立てるには(Proxmox VEの場合) VM 作成の苦労話 VMを生成 ココをクリックして完了
Slide 16
Slide 16 text
VM”は”生成できました
Slide 17
Slide 17 text
手動でVMを立てるには(Proxmox VEの場合) 1. ISOイメージをProxmox VEにアップロード 2. 「VMを作成」をクリック 3. VMの設定をする(コア数、メモリ数、ネットワーク etc…) 4. VMを生成 VM 作成の苦労話
Slide 18
Slide 18 text
手動でVMを立てるには(Proxmox VEの場合) 1. ISOイメージをProxmox VEにアップロード 2. 「VMを作成」をクリック 3. VMの設定をする(コア数、メモリ数、ネットワーク etc…) 4. VMを生成 ここからがOSの初期設定 (ベアメタルと同じインストール作業) VM 作成の苦労話
Slide 19
Slide 19 text
Proxmox VEにおけるVM手動生成の問題点 VM 作成の苦労話 OSのインストール作業をしないといけない 複数のVMを同時に作成できない テストと本番の冪等性が保たれない
Slide 20
Slide 20 text
IaC を使って解決しよう! VM 作成の苦労話
Slide 21
Slide 21 text
IaC の導入と実践
Slide 22
Slide 22 text
IaC ( Infrastructure as Code ) IaC の導入と実践
Slide 23
Slide 23 text
IaC ( Infrastructure as Code ) ネットワークインフラをソースコードで定義する IaC の導入と実践
Slide 24
Slide 24 text
IaC ( Infrastructure as Code ) ネットワークインフラをソースコードで定義する これまで手動で行っていた手順をコード化する IaC の導入と実践
Slide 25
Slide 25 text
IaC ( Infrastructure as Code ) ネットワークインフラをソースコードで定義する これまで手動で行っていた手順をコード化する 冪等性の確保(何度やっても同じ結果になる) IaC の導入と実践
Slide 26
Slide 26 text
IaC ( Infrastructure as Code ) ネットワークインフラをソースコードで定義する これまで手動で行っていた手順をコード化する 冪等性の確保(何度やっても同じ結果になる) Gitによるバージョン管理が可能 IaC の導入と実践
Slide 27
Slide 27 text
Terraformとcloud-initを使ってVMを自動デプロ イ IaC の導入と実践 に
Slide 28
Slide 28 text
実 践 IaC の導入と実践 Nekko Cloudのクラスタ上で VMを作成してみる
Slide 29
Slide 29 text
HashiCorp社が提供するIaC時代を支え るスタンダードなプロビジョニングツー ル Terraform IaC の導入と実践 VMインスタンスの生成を行う
Slide 30
Slide 30 text
Terraform ≒ APIぶっ叩くツール IaC の導入と実践
Slide 31
Slide 31 text
Terraform ≒ APIぶっ叩くツール IaC の導入と実践 TerraformはAPIが使えるほとんど のプラットフォームで使用可能
Slide 32
Slide 32 text
IaC の導入と実践 TerraformはProxmox VEのAPIを叩く “Proxmox VE API”というRest like APIを叩いている
Slide 33
Slide 33 text
tf file - Provider IaC の導入と実践 今回使用するプロバイダは Telmate/proxmox terraform initを実行する際 インストールが実行される
Slide 34
Slide 34 text
tf file – Top Level Block IaC の導入と実践 GUIで設定していたVMの基本的な要素を定義
Slide 35
Slide 35 text
tf file – Network Block IaC の導入と実践 VMのネットワークに関する要素を定義
Slide 36
Slide 36 text
tf file – Network Block IaC の導入と実践 VMのディスクに関す る要素を定義 SCSI: Bootディスク IDE: cloud-init
Slide 37
Slide 37 text
cloud-init Linux OSのインスタンス初期設定 を自動化してくれる優れもの Linux OSの初期設定をよしなにやってくれる IaC の導入と実践
Slide 38
Slide 38 text
cloud-init IaC の導入と実践 cloud-initに関する定義 ログイン情報, SSH, Preinstallを設定できる
Slide 39
Slide 39 text
cloud-init – cloud-config IaC の導入と実践 YAMLで定義された初期設 定ファイル 初回起動時に任意のコマン ドを実行 他のツールと連携した高度 なインストールに対応
Slide 40
Slide 40 text
実 践 VM の起動完了&動作確認 IaC の導入と実践
Slide 41
Slide 41 text
まとめ まとめ VM を手作業で作成する工程は面倒 非生産的な面倒を解消するためIaCを導入 自動化できる部分は積極的に自動化しよう
Slide 42
Slide 42 text
実 践 VM ぶっ壊しゾーン IaC の導入と実践
Slide 43
Slide 43 text
おわりに
Slide 44
Slide 44 text
おわりに Q. VM作りたいだけなのにTerraformを勉強するの?
Slide 45
Slide 45 text
おわりに Q. VM作りたいだけなのにTerraformを勉強するの? A. 確かに....
Slide 46
Slide 46 text
おわりに TerraformはAPIを叩くツールである Proxmox VE APIというREST like APIがある
Slide 47
Slide 47 text
おわりに TerraformはAPIを叩くツールである Proxmox VE APIというREST like APIがある →じゃあ、自分でAPI叩けばいいじゃん
Slide 48
Slide 48 text
おわりに Proxmox VE APIあったわ
Slide 49
Slide 49 text
おわりに ライブラリあるわ
Slide 50
Slide 50 text
おわりに Proxmox API Golangある〜
Slide 51
Slide 51 text
おわりに VM用のプロビジョニングツールTerrakko作成中 Python -> Goにリプレイスを検討中
Slide 52
Slide 52 text
Thanks for watching!