Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vagrant + Berkshelf でお手軽写経環境構築

D484f3a4d5f516f943b29b9ff55a2040?s=47 thinkAmi
January 25, 2014

Vagrant + Berkshelf でお手軽写経環境構築

GDG信州 2014 Jan で発表したスライドです。

D484f3a4d5f516f943b29b9ff55a2040?s=128

thinkAmi

January 25, 2014
Tweet

Transcript

  1. Vagrant + Berkshelf で お手軽写経環境構築 GDG Shinshu Meetup – January

    2014 @thinkAmi
  2. 自己紹介 • @thinkAmi • hatenaID: thinkAmi • C#, Ruby •

    自社インフラ管理 • GDG信州, NSEG • シナノドルチェ・シナノゴールド派
  3. はじめに • Vagrant + Berkshelf で お手軽写経環境構築 – Vagrant (ベイグラント)

    – Chef (シェフ) – Berkshelf (バークシェルフ) • 本日のコード • https://gist.github.com/thinkAmi/8608604
  4. 写経 • 本や雑誌に書いてあるコードを実際に写 してみること • 和田卓人の“テスト駆動開発”講座 第6回 「写 経」でTDDの手順や書き方を学ぶ http://gihyo.jp/dev/serial/01/tdd/0006

  5. 最近 • Ruby学習のため、写経しようと考えた – The RSpec Book (翔泳社) – Rails

    チュートリアル (Web, 達人出版会)
  6. ところで • 自分のThinkPadのOSは、Windows7 – 時々、Windowsではツライ扱いも... • 今回Linuxで写経をすることに

  7. 環境構築をどうするか • できるだけお手軽に写経環境を作りたい – やりたいのは写経であり、構築ではない • 案を考えてみた

  8. 環境案1 • Windows + Linuxのデュアルブート

  9. 環境案1 • やること多すぎ... • あんまり手軽に作れるイメージが無い – WindowsとLinux • パーティションを切る •

    Linux入れる • 環境作る • … – Windows8以降のブートローダー変更とか...
  10. 環境案2 • VirtualBoxなどで仮想マシンを作って そちらで写経する – 失敗しても、仮想マシンを削除すれば環境を 作り直せる

  11. 環境案2 • GUIでいろいろとやるのが手間... – 環境を作りなおすとしても、いちいちGUIか ら操作する • インストールとか • ネットワークやメモリの設定とか

  12. 環境案3 • Vagrant – CUI + 設定ファイルから、仮想マシンを作る • 設定ファイル(Vagrantfile)にいろいろと記載 –

    設定ファイルを使い回すことで、 同じ内容の仮想マシンを作成できる • コマンドラインから、お気軽に仮想マシンの起動 と削除ができる – vagrant up で起動 – vagrant destory で破棄
  13. 環境案3 • Vagrant – 素のVagrantでは起動するところまで • インストールや環境設定のところは、まだ手動...

  14. 環境案4 • Vagrant + Chef solo – Chef • インフラの構成等をcookbookという設定ファイル

    群へ記載し、実行する – gitをインストール – Terminalにgitのブランチ名を表示 • Cookbookを使い回せば、何度でも再現可能 • 自分で書かなくても、メジャーなものについては すでにいくつも公開されている • Vagrantと組み合わせて利用することが可能
  15. 環境案4 • Vagrant + Chef solo – cookbook間に依存関係があったりする • 依存を検証・対応するのが手間...

  16. 環境案5 • Vagrant + Chef solo + Berkshelf – Berkshelf

    • Chefのcookbookの依存関係を解消する • Vagrantと組み合わせて利用することが可能 – vagrant-berkshelfプラグインを使う • 注) 現在Berkshelfはv2系だが、v3がそろそろ – コマンドや設定が変更になるとか – これでようやくお手軽になった気がする!
  17. ツールのセットアップ • 用意するツール – VirtualBox – Vagrant – Vagrant用のBox –

    Vagrant Plugin – Ruby – RubyDevkit – Bundler – Berkshelf v2系       ...なんか多い気が
  18. ツールのセットアップ • VirtualBox – 公式サイトから落としてインストール • https://www.virtualbox.org/

  19. ツールのセットアップ • Vagrant – 公式サイトから落としてインストール • http://www.vagrantup.com/

  20. ツールのセットアップ • Vagrant用のBox – vagrantで作る仮想マシンのひな形 – Vagrantbox.esで公開されているのを使った り(自己責任)、自作したり – 事前に用意しておくといい感じ

    • 回線細いとダウンロードに時間がかかる... • 事前に用意した場合、以下のコマンドでVagrant へBoxを追加しておく – vagrant box add <vagrantでの認識名> <boxの保存 場所> » vagrant box add ubuntu120403 d:\fuga.box
  21. ツールのセットアップ • Vagrant用のPlugin – vagrant-omnibus • 仮想マシン上のChefの有無とインストールする • vagrant plugin

    install vagrant-omnibus – vagrant-berkshelf • VagrantとBerkshelfを連携する • vagrant plugin install vagrant-berkshelf
  22. ツールのセットアップ • Ruby (Windowsの場合) – Berkshelfを入れるために使う • vagrantに同梱されているRubyを使いたいけど berksコマンドを認識してくれなかった –

    RubyInstallerから、ダウンロード • http://rubyinstaller.org/downloads/ • Ruby 2.0.0-p353 • インストール時にPathを通しておく
  23. ツールのセットアップ • RubyDevkit (Windowsの場合) – Berkshelfを入れるために使う – RubyInstallerから、ダウンロード • http://rubyinstaller.org/downloads/

    • DevKit-mingw64-32-4.7.2-20130224-1151- sfx.exe
  24. ツールのセットアップ • RubyDevkit (Windowsの場合) – ダウンロードしたものを解凍 • c:\devkit など –

    コマンドプロンプトより実行 • cd c:\devkit • ruby dk.rb init • ruby dk.rb install
  25. ツールのセットアップ • Bundler – GemというRubyのパッケージを管理 – Gemfileに、使用するGemのリストを記載 • Berkshelfしかないけど、RubyInstallerで入れた Rubyの環境を汚さないために、使用する

    – gem install bundler --no-ri --no-rdoc
  26. ツールのセットアップ • Bundler – 今回使用するディレクトリを作って、 その中にGemfileを入れておく • 例) D:\gdg\Gemfile –

    中身はこんな感じ • v2系の最新版を指定しておく source 'https://rubygems.org' gem 'berkshelf', '2.0.13'
  27. ツールのセットアップ • Berkshelf – Bundlerを使ってBerkshelfを入れる • bundle install --path vendor/bundle

    » グローバルなところにGemを入れたくないので、 --pathで入れ先を指定しておく » D:\gdg\verndor\bundle の中に入る
  28. 設定ファイルのセットアップ • Berkshelfでひな形を用意 • Berksfileへ記載 • recipes/default.rbヘ記載 • Vagrantfileヘ記載 •

    今回はGitのインストールとTerminalの 表示変更をしてみる
  29. 設定ファイルのセットアップ • Berkshelfでひな形を用意 – 今回は、d:\gdg – bundle exec berks cookbook

    gdg- shinshu-201401 – Bundlerを使っているので、berksの前にbundle exec が必要
  30. 設定ファイルのセットアップ • ひな形 – たくさんできるが、お手軽写経環境構築では とりあえず以下だけおさえておく • recipes/default.rb • Berksfile

    • Vagrantfile
  31. 設定ファイルのセットアップ • Berksfileへ記載 – 使用するcookbookやリソース元を記載 – 今回は公開されているGitのcookbookを指定

  32. 設定ファイルのセットアップ • recipes/default.rbへ記載 – Chef向けに書く – 独自の設定があればここに記述 • Terminalにgitのブランチを表示する etc

  33. 設定ファイルのセットアップ • Vagrantfileへの記載 – 仮想マシン設定や使用するcookbookを記載

  34. デモ • Vagrantfileのあるディレクトリで vagrant up – しばらく待つと、VirtualBoxが起動 – 更にしばらくすると、設定終了 –

    ログにいろいろと出ている – Gitのブランチを作って見てみる
  35. デモ • Gitのブランチを作って見てみる • mkdir hoge • cd hoge •

    git init • git checkout -b fuga • touch piyo.txt • git add . • git commit -m first – Terminalにブランチ名が表示されてる
  36. あとは • recipeやcookbookを育ててく – Gitでバージョン管理し、 • ブランチを切る • タグ付けする といろいろと楽かも

    • 忘れずに写経も...
  37. 参考文献 • 今っぽい Vagrant + Chef Solo チュートリアル http://qiita.com/taiki45/items/b46a2f32248720ec2bae •

    入門Chef Solo - Infrastructure as Code (伊藤直也 著) http://tatsu-zine.com/books/chef-solo