最初は最低限のイメージファイルを配布して解決するほう楽かと検討していた。
ただ、動作が遅そう、作業しにくそう、という問題はあった。
こんな状況でした。
- はじめは作業者も少なく、データも貰えていなかった状態で仮の環境を作っていた
- 実データをもらった
- シンボリックリンク無数に存在、サーバの設定ファイルでごまかしているところも無数にあることを確認
- htmlのパスも自動で変更されている模様
- このままだとwindowsで作業するのは結構大変、gitでもシンボリックリンクを誤認識して大変
- とりあえず、リニューアル完了
- windowsの制作者でも作業ができるようにしなければ・・・(11月)
- 運用と並行しながら環境を検討、実装開始(12月)
- 作業者リソース問題、windowsユーザーが作業できないときつい、必須の実装8割ほど終わり(1月)
- windowsユーザーに環境を入れる、不備修正しながら対応してもらう(2月)
- 安定(3月〜)
ホストOS VMを起動する側のOS
ゲストOS ホストOS上でVirtualBox、VMware、Dockerを使って起動されるOS
比較点 | Vagrant | Docker |
---|---|---|
軽さ | 重い | 軽い |
手軽さ | どっちも | どっち |
環境の再現度 | どっちも | どっち |
リソース | 1boxにつきマシンレベルで完全にエミュレート | Docker Engine上で最低限エミュレート、Linux kernelは同じものを使う |
ホストからプロセスが | ラップされて全く見えない | ホストOSから丸見え |
環境依存 | Windows/Mac/Linux | mac/、VirtualBoxかVMwareが動くことLinux(Linux karnel上で動いてればいけるぽい?)+ cpu 64bitのみ |
依存 | VirtualBox,VMware | Linux karnel |
再現度 | OSレベルで変更可能 | 使ってるOS上で可能 |
取り扱い | box | イメージ |
Windowsユーザーいる(可能性がある)
-> Vagrant
32bitがいる
-> Vagrant
扱いたいデータがショートカット、ハードリンク、シンボリックリンクなどファイルシステムに依存するものがある
-> Vagrant
黒い画面大好き
-> Docker,Vagrant
VimかEmacsでがんばって生きることが出来る
-> Docker,Vagrant
Windowsは使わない
-> Docker
意地でもDocker使いたい
-> Vagrant+Docker(無茶しやがって・・・)
32bitだけど64bitで動かしたい
-> 秋葉原
基本的には
- Vagrantfileの作成(developのリポジトリにある)
- boxをダウンロード
https://atlas.hashicorp.com/ubuntu/boxes/trusty64 公式のubuntsu これ使うしかない
http://www.vagrantbox.es/ ユーザーが作ったbox、何が入っているかわからないところで案件で使うのは怖い
ただVMを立ち上げるだけでは開発環境とは言わない
誰でもすぐに同じ環境を用意できる事が重要
その際に使うツールが環境構築ツール
Puppet,Chef,Ansible当たりが有名
設定ファイルを書くことでインストールを自動化する
しらない
ローカルマシンにChefが必要
使っているところは多い
管理端末があれば、他のマシンへ実行が可能
設定ファイルが綺麗(yaml)
各制作者向けの開発環境ということで、正直Chefでも良かったけどイチオシだったみたいなのでAnsibleを採用
触り始めた時がbeta、ある程度さわったところでリリースされた。
ホスト側のディレクトリを共有ディレクトリとしてやったら分かりやすい
-> 共有ディレクトリの中身が重すぎると重すぎて死亡
-> NFSが高速という記事を見るもWindows非対応
-> sambaでサーバに接続する形で対応
ubuntsu/trusty64 はOS含めディスク容量が40GB
-> 仮想ディスクイメージを読み込むことで解決
なんか起動しない
-> Vagrant側でポート指定するとホスト側はそのポート使えなくなる
なんか起動しない2
-> Windowsでvagrantを起動したままシャットダウンすると極稀に起動できなくなる
-> 一時停止の状態であれば再開で大概復帰可能
-> どうしても無理なときは仮想ディスクイメージを移動、再インストール、virtualboxからのディスク追加