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+Chef Hands-on
Search
Kenichi Takahashi
May 27, 2013
Technology
0
310
Vagrant+Chef Hands-on
2013/05/23に開催した60min.での資料です。
Kenichi Takahashi
May 27, 2013
Tweet
Share
More Decks by Kenichi Takahashi
See All by Kenichi Takahashi
実践、マルチクラウド環境でのコスト管理の現状と未来
kenchan
0
79
エンジニアリング 💰Moneyジャー / Engineering Money-ger
kenchan
2
700
Lv1,2の開発生産性を経営と繋ぐ
kenchan
4
1.9k
「トップ10プランナー」からはじめる目標設定
kenchan
5
3.9k
負債と言わないことが負債と向き合うこと
kenchan
5
4k
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
kenchan
0
130
カラーミーショップは私たちが作っています
kenchan
0
1.6k
カラーミーショップ 2022 / COLORME SHOP 2022
kenchan
0
680
Amazon RDS移行のための 性能検証でわかった2つのこと
kenchan
3
4k
Other Decks in Technology
See All in Technology
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
350
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
0
220
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
180
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
820
CDK Toolkit Libraryにおけるテストの考え方
smt7174
1
360
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
610
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
180
データ基盤からデータベースまで?広がるユースケースのDatabricksについて教えるよ!
akuwano
3
150
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
14
5.8k
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
130
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
460
【あのMCPって、どんな処理してるの?】 AWS CDKでの開発で便利なAWS MCP Servers特集
yoshimi0227
6
600
Featured
See All Featured
Practical Orchestrator
shlominoach
189
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
320
Docker and Python
trallard
44
3.5k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
YesSQL, Process and Tooling at Scale
rocio
173
14k
A designer walks into a library…
pauljervisheath
207
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
A better future with KSS
kneath
238
17k
How STYLIGHT went responsive
nonsquared
100
5.6k
Building Applications with DynamoDB
mza
95
6.5k
Typedesign – Prime Four
hannesfritz
42
2.7k
Designing for humans not robots
tammielis
253
25k
Transcript
Vagrant & Chef ハンズオン @kenchan
今日のゴール Vagranの使い方がなんとなくわかる knifesoloの使い方がなんとなくわかる おまけで screen と apache がインストールされたCentOSの VMをお持ち替えりいただけます。
事前の準備
各種インストール VirtualBox のインストール Vagrant のインストール
BaseBox の登録 $ vagrant box add opscode-centos-64 \ https://opscode-vm.s3.amazonaws.com/vagrant/opscode_centos-6.4_chef-11.4.4.box $
vagrant box list opscode-centos-64 (virtualbox)
ハンズオン開始
vagrant init $ mkdir vagrant-handson $ cd vagrant-handson $ vagrant
init opscode-centos-64 Vagrantfile というものができていますね。
Vagrantfileを見てみよう config.vm.box config.vm.box_url vm.box はBase Boxの名前、 vm.box_url は Base Box
がな いときのダウンロードURL。名前の衝突は注意。
VMの作成と起動 vagrant up VirtualBoxの画面を開いておくと、VMができあがって起動する 様子を確認できます。
SSHで繋いでみよう vagrant ssh ユーザはvagrant。パスワード無しで sudo できる。
普通にSSHしてみよう $ vagrant ssh-config --host melody $ vagrant ssh-config --host
melody >> ~/.ssh/config $ ssh melody
knifesolo のインストール Gemfileを書いて bundle install しましょう。 source 'https://rubygems.org' gem 'knife-solo',
'~> 0.3.0.pre3'
knifesoloのセットアップ(1) $ bundle exec knife configure $ bundle exec knife
solo init . $ bundle exec knife solo prepare melody configureはchefの設定します。(今回は不要かも?) initはcookbookなどを置くディレクトリの作成します。
knifesoloのセットアップ(2) prepareは、以下の2ステップを行うので、chefが入っている VMで、nodesのjsonを自分で書けば不要です。 nods/melody.json を作る sshでVMに入り chef をインストールする
knifeを実行してみよう $ bundle exec knife solo cook melody エラーが出ないこと確認しましょう。
VMにscreenをインストール $ bundle exec knife cookbook create screen -o site-cookbooks
sitecookbooksに入れるべきかは議論の余地がありますが、今 回はsitecookbooksとします。
レシピの書き方 sitecookbooks/screen/recipes/default.rb package 'screen' do action :install end ふつうにRubyが書けますよ。
melodyにscreenを入れる nodes/melody.json { "run_list": [ "screen" ] } インストールしてみよう $
bundle exec knife solo cook melody
動作確認 $ vagrant ssh $ screen screenの中でscreenにならないように注意してね。
外部のcookbookを使う cookbookの管理ツールはいろいろありますが、今回 は Berkshelf を使ってみましょう。 Gemfileに gem 'berkshelf' を追加し て
bundle install します。
apache2のcookbookを利用 Berksfile site :opscode cookbook 'apache2' install $ bundle exec
berks install -p cookbooks
困っていること(1) berks install だけだ と、 ~/.berksfile/cookbooks に入ってしま い、 .chef/knife.rb のcookbookにpathを入れても見つけ
てくれない…
困っていること(2) berks install -p すると、ディレクトリ空っぽにしてか らインスールするので、実は vendor/cookbook とかにした ほうがいい? (たとえば自作のscreenのcookbook
を cookbooks に入れるとここで消されてしまう)
apache2をインストール nodes/melody.json { "run_list": [ "screen", "apache2" ] } $
bundle exec knife solo cook melody
起動しているか確認 $ vagrant ssh $ curl localhost > 404 Not
Found!!!
ホストからアクセス(1) VMを停止します。 $ vagrant halt Vagrantfileでコメントアウトされている箇所を戻します。 config.vm.network :private_network, ip: "192.168.33.10"
ホストからアクセス(2) $ vagrant up $ curl http://192.168.33.10/ > 404 Not
Found!!!
おわり なにかご質問は
おまけ VMの消し方 $ vagrant destroy
おまけ バージョン管理について .vagrant は環境依存なのでignoreに。 あとは全部管理した ほうがいいのでは。
おまけ VMのスナップショットでどうするの? VirtualBox上でやってもいいけど、Vagrantのプラグインがある よ。