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.7k
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
960
Twilio入門
thinkami
0
1.6k
おひとりさま環境でのChef-solo使用例
thinkami
2
1.4k
Other Decks in Programming
See All in Programming
Zoneless Testing
rainerhahnekamp
0
120
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
useSyncExternalStoreを使いまくる
ssssota
6
1k
nekko cloudにおけるProxmox VE利用事例
irumaru
3
420
As an Engineers, let's build the CRM system via LINE Official Account 2.0
clonn
1
670
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
テストコード文化を0から作り、変化し続けた組織
kazatohiei
2
1.5k
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
110
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Documentation Writing (for coders)
carmenintech
66
4.5k
Statistics for Hackers
jakevdp
796
220k
4 Signs Your Business is Dying
shpigford
181
21k
GitHub's CSS Performance
jonrohan
1030
460k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Building Your Own Lightsaber
phodgson
103
6.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
BBQ
matthewcrist
85
9.4k
Optimising Largest Contentful Paint
csswizardry
33
3k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
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