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.3k
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
9.9k
Djangoでのメール送信 - 設定からテストまで/djangocongress-jp-2019-talk
thinkami
1
12k
Django・WSGIミドルウェア入門/django-congress-jp-2018-talk
thinkami
4
5k
自分のための機械学習をしてみた話
thinkami
0
600
Xamarinで作るAndroid Wearアプリ
thinkami
1
2.6k
FluentMigratorでDBマイグレーション
thinkami
0
2.1k
デプロイボタンを使ってみた
thinkami
0
970
Twilio入門
thinkami
0
1.6k
おひとりさま環境でのChef-solo使用例
thinkami
2
1.4k
Other Decks in Programming
See All in Programming
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
AHC041解説
terryu16
0
330
快速入門可觀測性
blueswen
0
500
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
1k
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
290
Rubyでつくるパケットキャプチャツール
ydah
0
160
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
2
2.6k
Androidアプリの One Experience リリース
nein37
0
1.1k
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
290
Flatt Security XSS Challenge 解答・解説
flatt_security
0
710
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
120
テストコード書いてみませんか?
onopon
2
330
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Making the Leap to Tech Lead
cromwellryan
133
9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Making Projects Easy
brettharned
116
6k
Being A Developer After 40
akosma
89
590k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Code Review Best Practice
trishagee
65
17k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Gamification - CAS2011
davidbonilla
80
5.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
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