jazug福島 azure vm_20150404
TRANSCRIPT
![Page 1: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/1.jpg)
Azure Virtual MachineInfrastructure as Code 始めてみた
木村忠宏 @kimura016
![Page 2: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/2.jpg)
自己紹介
木村 忠宏(きむら ただひろ)
JAZUG仙台
サトヤ仙台
東北デベロッパーズコミュニティ 運営委員
Twitter @kimura016
Facebook http://www.facebook.com/kimuratadahiro
集合写真を2枚
![Page 3: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/3.jpg)
![Page 4: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/4.jpg)
![Page 5: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/5.jpg)
今日の概要
•Microsoft Azure 仮想マシンについて
• Infrastructure as codeを始めてみる
![Page 6: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/6.jpg)
![Page 7: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/7.jpg)
Windows Server あるいは Linux の
仮想マシンを作成し、任意のアプリ
ケーションをインストール可能
• 既存の社内サーバーのクラウド移行に
• 検証・テスト環境として
• 自社データセンター被災時の災害対策用に
Microsoft Azure 仮想マシン
Microsoft Azure OS(ホストOS)
Microsoft Azure Hypervisor
コンピュート
・・ゲスト OS(仮想マシン)
![Page 8: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/8.jpg)
Hyper-V
仮想マシンの展開パターン
イメージ (テンプレート)
プラットフォームイメージ(標準テンプレート)
Windows CentOS Ubuntu
VHD VHD VHD
VHD
・・・
マイイメージ(カスタムテンプレート)
(Generalize 済)
・・・
アップロード 仮想マシン
インスタンス化
イメージ化 コピー
BLOB ストレージ 仮想マシン
VHD
![Page 9: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/9.jpg)
仮想マシン
BLOB に配置された VHD ファイルの堅牢性
![Page 10: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/10.jpg)
BLOB に配置された VHD ファイルの堅牢性
仮想マシン
![Page 11: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/11.jpg)
仮想マシン
BLOB に配置された VHD ファイルの堅牢性
![Page 12: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/12.jpg)
拠点間複製(geo-replication)
![Page 13: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/13.jpg)
パターン毎の責任範囲の考え方
ストレージ
サーバー
ネットワーク
OS
ミドルウエア
仮想化
データ
アプリケーション
ランタイム
OS
ミドルウエア
データ
アプリケーション
ランタイムユーザー管理
アプリケーション
データ
仮想マシンWindows Server Web サイトモバイルサービス
Office 365
オンプレミス IaaS PaaS SaaS
![Page 14: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/14.jpg)
Infrastructure as Code始めてみた
きっかけはGoAzure 2015 への参加
「Infrastructure as Code for Azure」青木賢太郎さん/亀渕景司さん
http://www.slideshare.net/kamebuchi/infrastructure-as-code-for-azure
![Page 15: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/15.jpg)
現状のインフラ作業の課題
・手順書はどれ?
・手順書の内容と、実機で状態が違う 資料の更新漏れ?
・毎回微妙に違う
・手間と時間がかかる
1台とか少ない台数なら良いけど、それ何台も何回もやるの?
→コードで管理、自動化
Infrastructure as Code
![Page 16: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/16.jpg)
Immutableと冪等性(べき等性)
・Immutable (不変の)
→初期設定を状態を変えない。何回でも作り直しできる。
・冪等(べき等)
ある操作を1度行っても複数回行っ ても同じ結果(効果)になること
→これは課題を解決してくれそう!
・誰がやっても同じ結果になる
・ヒューマンエラーの回避(実行漏れ、手順書の更新漏れ)
・暗黙的作業の明示化(熟練技術者の暗黙知)
![Page 17: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/17.jpg)
Azureでの基本
・Azure PowerShell, Azure クロスプラットフォーム CLI
Azureでの基本はおいといて・・・
・今までのインフラ構築作業
- 手順書をもとに手動による設定
・1stステップ
- シェルスクリプトによる設定
・2ndステップ
- Ansible、Chef等、構成管理ツールによる設定
![Page 18: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/18.jpg)
構成管理ツール
・Ansible(アンシブル)
- Pythonで実装されている
PlaybookというYAML形式のファイルで設定記述
・Chef(シェフ)
- Rubyで実装されている
Rubyスクリプトで、
レシピと呼ばれるファイルを作成して設定記述
![Page 19: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/19.jpg)
DemoAnsible Demo内容(事前準備含) ※ubuntu14.04 LTSにて実施
(1)Azure仮想マシンにAnsibleをインストール
sudo apt-get install python-pip
sudo pip install ansible
(2) inventory file(対象ホスト記述)の作成
ファイル名:localhost
以下1行を記述 今回は対象をlocalhostとする
127.0.0.1 ansible_connection=local
![Page 20: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/20.jpg)
(3) Playbookの記述
ファイル名:sample.yml
以下、LAMP環境作成のためのapache, php, mysqlのインストール内容を記述
- hosts: 127.0.0.1user: azureusertasks:- name: "apt-get install apache"
apt: pkg=apache2sudo: yes
- name: "apt-get install php"apt: pkg=php5sudo: yes
- name: "apt-get install mysql"apt: pkg=php5-mysqlsudo: yes
![Page 21: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/21.jpg)
(4) Ansibleの実行
以下コマンドを実行。
ansible-playbook sample.yml -i localhost -K
→” –i ”オプションでinventoryファイルを指定
“ -K ”オプションでsudoのパスワードを要求する
“-K”の代わりに”--ask -sudo -pass”でも可
![Page 22: Jazug福島 azure vm_20150404](https://reader034.vdocuments.net/reader034/viewer/2022042602/55a795431a28ab7a1f8b4669/html5/thumbnails/22.jpg)
課題
・新しい構成管理ツールを使うための学習コスト
・コードで設定を記述するが、テストをどうするか?
テスト用ツールあるが、例えばAnsibleだとテストはRubyで書かないといけない(Serverspec)など