狠狠撸
Submit Search
仮想マシンを使った开発环境の简単共有方法
?
3 likes
?
3,451 views
Hideo Takahashi
Follow
社内勉強会で用いた資料。 開発環境と開発コードを共有するために,git, vagrant, chef, serverspecを利用します。
Read less
Read more
1 of 34
Download now
Download to read offline
More Related Content
仮想マシンを使った开発环境の简単共有方法
1.
仮想マシンを使った 開発環境の簡単共有方法 @hitaka0214
2014/09/08 1
2.
何? 社内勉強会で使った資料 2
3.
突然ですが こんな経験ありませんか? 3
4.
自分のPCでのみプログラムが動かない! なんで? ?パッケージ不足
?バージョン違い ?設定ファイルの記述ミス ?「手順に書いてないけど, 実はchmodしないと動かないんだわ」 など 4
5.
(#^ω^)?????? 5
6.
テスト環境がないから本番環境触る? なんで? ?サーバを借りるの高いじゃん!
?検証環境セットアップする時間がないよ ?「手順書ないから環境再現できないんだわ」 6
7.
(#^ω^)?????? 7
8.
できたらいいなぁ ? PCローカルで動く開発環境
? 誰もで間違いなく出来る環境構築 ? メンバー間で開発コードの共有 ? 脱☆手作業!!! ____ / \ / _ノ ヽ?_ \ / o?⌒ ⌒?o \ 刺身の上にタンポポのせる仕事もう嫌だお… | (__人__) | \ ` ⌒? / 8
9.
出来るんです! 9
10.
どうやる? 仮想マシンを立てて 本物そっくりの環境を自動的にインストールする
10 開発環境構築 開発コード共有 開発コードをGitなどを使って管理し 開発環境内で動かす
11.
使うもの VirtualBox Vagrant
Chef ServerSpec 仮想マシンの実行環境 (VMwareはライセンスが…) VirtualBoxの簡単操作 (AWSなども操作可能) 手順書をコード化し コードの通りに設定する 完成した環境の確認ツール インフラと開発コードの両方をgitで管理する 11
12.
準備 VirtualBoxインストール https://www.virtualbox.org/wiki/Downloads
仮想ターミナルインストール Windowsな方はCygwinがおすすめ。 パッケージのOpensshを追加してね。 LinuxとMacな方は不要。 Vagrantインストール https://www.vagrantup.com/downloads.html 12
13.
準備完了 13
14.
ここからはデモをしながら説明 サンプルコードを用意しました。 興味のある方は見て,試して下さい。
https://github.com/hitaka0214/vagrant_demo 14
15.
やること一覧 1. Vagrantの作業ディレクトリ作成
2. Vagrantfile作成 3. Chefコード記載 4. ServerSpecコード記載 5. Vagrant起動(VirtualBox起動:仮想マシン起動) 6. 仮想マシンへログイン(開発開始) デモコードで 一気に出来ます 15
16.
1.Vagrantの作業用 ディレクトリ作成 デモコードで準備してます
$ git clone https://github.com/hitaka0214/vagrant_demo.git 16
17.
2.Vagrantfile作成 ? インストールするOSの記載
インターネット上からboxファイルと呼ばれる 仮想マシンのイメージダウンロードします。 ? CPU数,メモリ数などの設定 ? 仮想ネットワークの設定 ? Chefインストール OSはCentOS7 IPは192.168.50.10を設定 Rubyコード 17
18.
補足 Vagrant ?仮想OSのイメージはboxと呼ばれる !
?boxはインターネット上に公開されている ! ?ダウンロードするだけで好きなOSを使える Linuxが主。BSD系もあり。 Windowsもあるらしい(ライセンスは??)。 ★Vagrant Cloud(boxイメージの検索サイト) https://vagrantcloud.com 18
19.
3.Chefコード記載 Rubyコード ?
ディレクトリchef-repoに入っています ? Swap作成 ? 開発用のエディタインスコ,設定ファイル設置 ? WebサーバにNginxをインストール ? 開発コード(HTMLファイル)デプロイ これが構築手順書に該当19
20.
補足 Chef ?プログラムでサーバの構築作業を行う
似たもの:Puppet,Ansible ! ?Rubyコードで記述 おきまり文句なので簡単。 複数OS,バージョンを想定すると作り込みが必要 参考書:入門Chef Solo - Infrastructure as Code http://tatsu-zine.com/books/chef-solo 20
21.
4.ServerSpecコード Rubyコード ?
ディレクトリspecに入っています ? Nginxインストールできた? ? Nginxの自動起動設定した? ? Nginxが起動してる? ? ポート80番開いてる? 【定番らしい】 Chefで作って ServerSpecで確認 期待する状態を確認21
22.
5.Vagrant起動 Vagrantfileがあるディレクトリ内で実行 $
vagrant up Vagrantfileに記載したとおりに仮想マシンが起動 Chefを使ったサーバ構築と ServerSpecを使ったサーバ環境の確認も実施可能 22
23.
6.仮想マシンへログイン $ vagrant
ssh あとはthecodes内のコードを編集し gitで管理することを繰り返す。 これでメンバー間で同一の開発環境を使った開発が可能! 23
24.
開発ソースの共有 ?gitなどのソースコード管理ツールを使って共有。 ?仮想マシン内で開発をして管理ツールへ登録。
?複数メンバーでソースを共有し, 同じ環境内で動作確認が可能。 http://192.168.50.10/thecodes/ コードは/home/vagrant/projectx/thecodes 24
25.
その他の操作 ? 仮想マシンの停止
仮想マシン内からexitした後で, $ vagrant halt ? 仮想マシンの削除 $ vagrant destroy ? 仮想マシンの作り直し(止めた仮想マシンの起動) $ vagrant up 25
26.
本番環境への構築 ? Cehfでやっちゃいな!
Chef-soloを使えば簡単に可能。 ?本番環境へのChefインストール $ knife solo prepare user@host ! ?本番環境へChefのコード実行 $ knife solo cook host 本番環境がAWSやGPC,vSphereなどであれば Vagrantを使えます! 26
27.
詳細はコードを読んでネ☆ 27
28.
ちょっとだけ余談 ? Vagrantの起動って時間がかかる
? ハイパーバイザー型の仮想化だから ? VMwareでも同じ ? もっと高速な仮想化技術がでてきた ? コンテナと呼ばれる技術 28
29.
代表ツール https://www.docker.com 29
30.
なにができるの? ? 超高速なOS起動
30
31.
他には? やたらと最近注目されてる まだ詳しくわかってないけど,
なんだか未来を感じる 31
32.
Googleはコンテナを活用中らしい Everything at
Google runs in a container. https://speakerdeck.com/jbeda/containers-at-scale 32
33.
簡単な使い方 1. Dockerfileを記述
デモコードでは/home/vagrant/Dockerfile 2. Dockerのイメージをビルド sudo docker build -t test:ubuntu . 3. Dockerのイメージ作成結果を確認 sudo docker images 4. Dockerのイメージを起動 sudo docker run -i -t test:ubuntu /bin/bash 33
34.
皆が幸せになれるかもしれないまとめ ? 仮想マシンを使って本番と同じ環境をゲット
? Chef+ServerSpecを使って環境構築を自動化 ? Gitを使って開発ソース,Chefコードなどを共有 34
Download