Microsoft azureとdockerとansibleと

15
Microsoft Azure と Docker と Ansible とととととととととPHPとととととととととととと 2015/09/26 Windows 子子 子子子子

Transcript of Microsoft azureとdockerとansibleと

Page 1: Microsoft azureとdockerとansibleと

Mic roso f t Azure とDocker と

Ans ib le〜 複 数 バ ー ジ ョ ン の P H P 環 境 構 築 ま で の つ ま づ き 〜

2015 / 0 9 / 2 6W i ndows 女 子 部   木 下 未 来

Page 2: Microsoft azureとdockerとansibleと

自己紹介職種システムエンジニア

システムの企画提案から設計、開発、運用等

今はスマートフォンアプリの開発をやってます

Windows 女子部 三代目部長 木下未来(きのした みく)

Page 3: Microsoft azureとdockerとansibleと

今回構築した構成

playbook

Mac

ローカル環境 クラウド環境( Microsft Azure)

Docker コンテナ

Nginx

Docker コンテナ

<? PHP ?>

v5.4

Dockerfile

Docker コンテナ

Nginx

Docker コンテナ

<? PHP ?>

v7.0

docker-compose

Page 4: Microsoft azureとdockerとansibleと

なぜ試したのかPHP をはじめ、

オープンソース系の言語や各種ミドルウェアのバージョンがアップデートされた際に毎回検証用テスト環境を構築するのは大変

仮想マシンレベルでインスタンスを作っておく方法もあるが、利用頻度が少ない

ミドルウェアのバージョンを上げて新たに構築しないといけない(インスタンスを流用しづらい)

Page 5: Microsoft azureとdockerとansibleと

Docker って? Docker とは、 Docker 社が開発している

オープンソースのコンテナ型仮想化ソフトウェア Docker を使うことで一つのホスト OS の上で仮想的に複数の OS を「軽快」に「簡単」に動作させることができる 昨年、米マイクロソフトと Docker 社が提携し、次期 Windows Server 、 Microsoft Azure で Docker をサポート

例えると・・・ オンプレミス → 一軒家 クラウド → マンション コンテナ  → シェアオフィス・テント

Page 6: Microsoft azureとdockerとansibleと

Ansible って?

Ansible とは、サーバの構成を管理するためのツールPython ベースで作られている管理対象のサーバーに特別なソフトウェア(エージェント)をインストールしなくてもよいYAML 形式で記述できるのでシンプルでわかりやすい

Page 7: Microsoft azureとdockerとansibleと

immutable infrastructure 「不変のインフラ」

→ 一度を構築したらそれ以降はサーバーに変更を加えない 新たな構成のサーバを作り、そちらに乗せかえていく

(古い構成で不要になったサーバーは破棄していく)

破棄→ 破棄→

アクティブ変更変更

変更

可変のインフラ 不変のインフラ

Page 8: Microsoft azureとdockerとansibleと

Docker on Ubuntu Server を利用

Page 9: Microsoft azureとdockerとansibleと

サクッと仮想マシンができる

Page 10: Microsoft azureとdockerとansibleと

はまったところ①仮想マシンに SSH 接続できない

Page 11: Microsoft azureとdockerとansibleと

Ansible の Playbook を作成

※ 今回は違いがわかるように Dockefile を書き換えてPHP のバージョンが切り替わったことを確認します参考元: http://opensolitude.com/2015/05/26/building-docker-images-with-ansible.htmlhttps://github.com/kumatch/sandbox-docker-phpinfo-nginx-phpfpm/tree/1.1.0

Page 12: Microsoft azureとdockerとansibleと

デモ

Page 13: Microsoft azureとdockerとansibleと

はまったところ②

仮想マシンを構築する際同じ仮想ネットワークせずに構築してしまいもともと想定していた環境が構築できなかった

Page 14: Microsoft azureとdockerとansibleと

構築したかった構成

クラウド環境( Microsft Azure)

Docker コンテナ

Nginx

Docker コンテナ

<? PHP ?>

v5.4

Docker コンテナ

Nginx

Docker コンテナ

<? PHP ?>

v7.0

docker-compose

playbook

Page 15: Microsoft azureとdockerとansibleと

はまったところ③

Ansible で構築してしまうのが良いのか、DockerHub を利用して構築するのが良いのか、docker-compse を利用して構築するのが良いのか悩みまくった