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.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vagrant + Berkshelf でお手軽写経環境構築
GDG信州 2014 Jan で発表したスライドです。
thinkAmi
January 25, 2014
More Decks by thinkAmi
See All by thinkAmi
知ろう!使おう!HDF5ファイル!/pycon-jp-2019-talk
thinkami
5
11k
Djangoでのメール送信 - 設定からテストまで/djangocongress-jp-2019-talk
thinkami
1
13k
Django・WSGIミドルウェア入門/django-congress-jp-2018-talk
thinkami
4
5.6k
自分のための機械学習をしてみた話
thinkami
0
690
Xamarinで作るAndroid Wearアプリ
thinkami
1
2.8k
FluentMigratorでDBマイグレーション
thinkami
0
2.3k
デプロイボタンを使ってみた
thinkami
0
1.1k
Twilio入門
thinkami
0
1.7k
おひとりさま環境でのChef-solo使用例
thinkami
2
1.5k
Other Decks in Programming
See All in Programming
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.6k
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
850
What's New in Android 2026
veronikapj
0
260
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.8k
Building a Meta Ray-Ban display app
akkeylab
0
140
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
490
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
550
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
190
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
470
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
560
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
150
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Navigating Team Friction
lara
192
16k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
570
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
490
For a Future-Friendly Web
brad_frost
183
10k
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