Skip to content

Instantly share code, notes, and snippets.

@svjunic
Last active May 10, 2016 07:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save svjunic/4256cd92a04425fccbd95046c42b950c to your computer and use it in GitHub Desktop.
Save svjunic/4256cd92a04425fccbd95046c42b950c to your computer and use it in GitHub Desktop.
開発環境についてのメモ書き

開発環境についてのメモ書き

最初は最低限のイメージファイルを配布して解決するほう楽かと検討していた。
ただ、動作が遅そう、作業しにくそう、という問題はあった。

こんな状況でした。

  • はじめは作業者も少なく、データも貰えていなかった状態で仮の環境を作っていた
  • 実データをもらった
  • シンボリックリンク無数に存在、サーバの設定ファイルでごまかしているところも無数にあることを確認
  • htmlのパスも自動で変更されている模様
  • このままだとwindowsで作業するのは結構大変、gitでもシンボリックリンクを誤認識して大変
  • とりあえず、リニューアル完了
  • windowsの制作者でも作業ができるようにしなければ・・・(11月)
  • 運用と並行しながら環境を検討、実装開始(12月)
  • 作業者リソース問題、windowsユーザーが作業できないときつい、必須の実装8割ほど終わり(1月)
  • windowsユーザーに環境を入れる、不備修正しながら対応してもらう(2月)
  • 安定(3月〜)

VagrantとDockerについて

用語

ホストOS VMを起動する側のOS

ゲストOS ホストOS上でVirtualBox、VMware、Dockerを使って起動されるOS

VagrantとDockerの違い

比較点 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で動かしたい
-> 秋葉原

Vagrantを使う

githubのwikiにかいてある

基本的には

  • Vagrantfileの作成(developのリポジトリにある)
  • boxをダウンロード

https://atlas.hashicorp.com/ubuntu/boxes/trusty64 公式のubuntsu これ使うしかない

http://www.vagrantbox.es/ ユーザーが作ったbox、何が入っているかわからないところで案件で使うのは怖い

構成管理ツールについて

ただVMを立ち上げるだけでは開発環境とは言わない
誰でもすぐに同じ環境を用意できる事が重要
その際に使うツールが環境構築ツール
Puppet,Chef,Ansible当たりが有名

設定ファイルを書くことでインストールを自動化する

Puppet

しらない

Chef

ローカルマシンにChefが必要
使っているところは多い

Ansible

管理端末があれば、他のマシンへ実行が可能
設定ファイルが綺麗(yaml)

各制作者向けの開発環境ということで、正直Chefでも良かったけどイチオシだったみたいなのでAnsibleを採用
触り始めた時がbeta、ある程度さわったところでリリースされた。

躓いたこと

ホスト側のディレクトリを共有ディレクトリとしてやったら分かりやすい
-> 共有ディレクトリの中身が重すぎると重すぎて死亡
-> NFSが高速という記事を見るもWindows非対応
-> sambaでサーバに接続する形で対応
ubuntsu/trusty64 はOS含めディスク容量が40GB
-> 仮想ディスクイメージを読み込むことで解決
なんか起動しない
-> Vagrant側でポート指定するとホスト側はそのポート使えなくなる
なんか起動しない2
-> Windowsでvagrantを起動したままシャットダウンすると極稀に起動できなくなる
-> 一時停止の状態であれば再開で大概復帰可能
-> どうしても無理なときは仮想ディスクイメージを移動、再インストール、virtualboxからのディスク追加

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment