Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vagrant + Berkshelf でお手軽写経環境構築
Search
thinkAmi
January 25, 2014
Programming
1
1.2k
Vagrant + Berkshelf でお手軽写経環境構築
GDG信州 2014 Jan で発表したスライドです。
thinkAmi
January 25, 2014
Tweet
Share
More Decks by thinkAmi
See All by thinkAmi
知ろう!使おう!HDF5ファイル!/pycon-jp-2019-talk
thinkami
4
8.9k
Djangoでのメール送信 - 設定からテストまで/djangocongress-jp-2019-talk
thinkami
1
11k
Django・WSGIミドルウェア入門/django-congress-jp-2018-talk
thinkami
4
4.7k
自分のための機械学習をしてみた話
thinkami
0
550
Xamarinで作るAndroid Wearアプリ
thinkami
1
2.6k
FluentMigratorでDBマイグレーション
thinkami
0
2k
デプロイボタンを使ってみた
thinkami
0
880
Twilio入門
thinkami
0
1.5k
おひとりさま環境でのChef-solo使用例
thinkami
2
1.4k
Other Decks in Programming
See All in Programming
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
"config" ってなんだ? / What is "config"?
okashoi
0
240
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
0
250
VS Code をプロダクトにどう取り込むか
onomax
1
430
見た目から始める生産性向上
ikumatadokoro
8
920
Polars入門
daikikatsuragawa
1
100
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
190
Elm Form Validation
bkuhlmann
0
510
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
240
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.3k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Writing Fast Ruby
sferik
621
60k
BBQ
matthewcrist
80
8.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
A Tale of Four Properties
chriscoyier
151
22k
Bash Introduction
62gerente
604
210k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
GitHub's CSS Performance
jonrohan
1025
450k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Transcript
Vagrant + Berkshelf で お手軽写経環境構築 GDG Shinshu Meetup – January
2014 @thinkAmi
自己紹介 • @thinkAmi • hatenaID: thinkAmi • C#, Ruby •
自社インフラ管理 • GDG信州, NSEG • シナノドルチェ・シナノゴールド派
はじめに • Vagrant + Berkshelf で お手軽写経環境構築 – Vagrant (ベイグラント)
– Chef (シェフ) – Berkshelf (バークシェルフ) • 本日のコード • https://gist.github.com/thinkAmi/8608604
写経 • 本や雑誌に書いてあるコードを実際に写 してみること • 和田卓人の“テスト駆動開発”講座 第6回 「写 経」でTDDの手順や書き方を学ぶ http://gihyo.jp/dev/serial/01/tdd/0006
最近 • Ruby学習のため、写経しようと考えた – The RSpec Book (翔泳社) – Rails
チュートリアル (Web, 達人出版会)
ところで • 自分のThinkPadのOSは、Windows7 – 時々、Windowsではツライ扱いも... • 今回Linuxで写経をすることに
環境構築をどうするか • できるだけお手軽に写経環境を作りたい – やりたいのは写経であり、構築ではない • 案を考えてみた
環境案1 • Windows + Linuxのデュアルブート
環境案1 • やること多すぎ... • あんまり手軽に作れるイメージが無い – WindowsとLinux • パーティションを切る •
Linux入れる • 環境作る • … – Windows8以降のブートローダー変更とか...
環境案2 • VirtualBoxなどで仮想マシンを作って そちらで写経する – 失敗しても、仮想マシンを削除すれば環境を 作り直せる
環境案2 • GUIでいろいろとやるのが手間... – 環境を作りなおすとしても、いちいちGUIか ら操作する • インストールとか • ネットワークやメモリの設定とか
環境案3 • Vagrant – CUI + 設定ファイルから、仮想マシンを作る • 設定ファイル(Vagrantfile)にいろいろと記載 –
設定ファイルを使い回すことで、 同じ内容の仮想マシンを作成できる • コマンドラインから、お気軽に仮想マシンの起動 と削除ができる – vagrant up で起動 – vagrant destory で破棄
環境案3 • Vagrant – 素のVagrantでは起動するところまで • インストールや環境設定のところは、まだ手動...
環境案4 • Vagrant + Chef solo – Chef • インフラの構成等をcookbookという設定ファイル
群へ記載し、実行する – gitをインストール – Terminalにgitのブランチ名を表示 • Cookbookを使い回せば、何度でも再現可能 • 自分で書かなくても、メジャーなものについては すでにいくつも公開されている • Vagrantと組み合わせて利用することが可能
環境案4 • Vagrant + Chef solo – cookbook間に依存関係があったりする • 依存を検証・対応するのが手間...
環境案5 • Vagrant + Chef solo + Berkshelf – Berkshelf
• Chefのcookbookの依存関係を解消する • Vagrantと組み合わせて利用することが可能 – vagrant-berkshelfプラグインを使う • 注) 現在Berkshelfはv2系だが、v3がそろそろ – コマンドや設定が変更になるとか – これでようやくお手軽になった気がする!
ツールのセットアップ • 用意するツール – VirtualBox – Vagrant – Vagrant用のBox –
Vagrant Plugin – Ruby – RubyDevkit – Bundler – Berkshelf v2系 ...なんか多い気が
ツールのセットアップ • VirtualBox – 公式サイトから落としてインストール • https://www.virtualbox.org/
ツールのセットアップ • Vagrant – 公式サイトから落としてインストール • http://www.vagrantup.com/
ツールのセットアップ • Vagrant用のBox – vagrantで作る仮想マシンのひな形 – Vagrantbox.esで公開されているのを使った り(自己責任)、自作したり – 事前に用意しておくといい感じ
• 回線細いとダウンロードに時間がかかる... • 事前に用意した場合、以下のコマンドでVagrant へBoxを追加しておく – vagrant box add <vagrantでの認識名> <boxの保存 場所> » vagrant box add ubuntu120403 d:\fuga.box
ツールのセットアップ • Vagrant用のPlugin – vagrant-omnibus • 仮想マシン上のChefの有無とインストールする • vagrant plugin
install vagrant-omnibus – vagrant-berkshelf • VagrantとBerkshelfを連携する • vagrant plugin install vagrant-berkshelf
ツールのセットアップ • Ruby (Windowsの場合) – Berkshelfを入れるために使う • vagrantに同梱されているRubyを使いたいけど berksコマンドを認識してくれなかった –
RubyInstallerから、ダウンロード • http://rubyinstaller.org/downloads/ • Ruby 2.0.0-p353 • インストール時にPathを通しておく
ツールのセットアップ • RubyDevkit (Windowsの場合) – Berkshelfを入れるために使う – RubyInstallerから、ダウンロード • http://rubyinstaller.org/downloads/
• DevKit-mingw64-32-4.7.2-20130224-1151- sfx.exe
ツールのセットアップ • RubyDevkit (Windowsの場合) – ダウンロードしたものを解凍 • c:\devkit など –
コマンドプロンプトより実行 • cd c:\devkit • ruby dk.rb init • ruby dk.rb install
ツールのセットアップ • Bundler – GemというRubyのパッケージを管理 – Gemfileに、使用するGemのリストを記載 • Berkshelfしかないけど、RubyInstallerで入れた Rubyの環境を汚さないために、使用する
– gem install bundler --no-ri --no-rdoc
ツールのセットアップ • Bundler – 今回使用するディレクトリを作って、 その中にGemfileを入れておく • 例) D:\gdg\Gemfile –
中身はこんな感じ • v2系の最新版を指定しておく source 'https://rubygems.org' gem 'berkshelf', '2.0.13'
ツールのセットアップ • Berkshelf – Bundlerを使ってBerkshelfを入れる • bundle install --path vendor/bundle
» グローバルなところにGemを入れたくないので、 --pathで入れ先を指定しておく » D:\gdg\verndor\bundle の中に入る
設定ファイルのセットアップ • Berkshelfでひな形を用意 • Berksfileへ記載 • recipes/default.rbヘ記載 • Vagrantfileヘ記載 •
今回はGitのインストールとTerminalの 表示変更をしてみる
設定ファイルのセットアップ • Berkshelfでひな形を用意 – 今回は、d:\gdg – bundle exec berks cookbook
gdg- shinshu-201401 – Bundlerを使っているので、berksの前にbundle exec が必要
設定ファイルのセットアップ • ひな形 – たくさんできるが、お手軽写経環境構築では とりあえず以下だけおさえておく • recipes/default.rb • Berksfile
• Vagrantfile
設定ファイルのセットアップ • Berksfileへ記載 – 使用するcookbookやリソース元を記載 – 今回は公開されているGitのcookbookを指定
設定ファイルのセットアップ • recipes/default.rbへ記載 – Chef向けに書く – 独自の設定があればここに記述 • Terminalにgitのブランチを表示する etc
設定ファイルのセットアップ • Vagrantfileへの記載 – 仮想マシン設定や使用するcookbookを記載
デモ • Vagrantfileのあるディレクトリで vagrant up – しばらく待つと、VirtualBoxが起動 – 更にしばらくすると、設定終了 –
ログにいろいろと出ている – Gitのブランチを作って見てみる
デモ • Gitのブランチを作って見てみる • mkdir hoge • cd hoge •
git init • git checkout -b fuga • touch piyo.txt • git add . • git commit -m first – Terminalにブランチ名が表示されてる
あとは • recipeやcookbookを育ててく – Gitでバージョン管理し、 • ブランチを切る • タグ付けする といろいろと楽かも
• 忘れずに写経も...
参考文献 • 今っぽい Vagrant + Chef Solo チュートリアル http://qiita.com/taiki45/items/b46a2f32248720ec2bae •
入門Chef Solo - Infrastructure as Code (伊藤直也 著) http://tatsu-zine.com/books/chef-solo