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
300
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
エンジニアリング 💰Moneyジャー / Engineering Money-ger
kenchan
2
640
Lv1,2の開発生産性を経営と繋ぐ
kenchan
4
1.8k
「トップ10プランナー」からはじめる目標設定
kenchan
5
3.8k
負債と言わないことが負債と向き合うこと
kenchan
5
3.9k
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
kenchan
0
120
カラーミーショップは私たちが作っています
kenchan
0
1.5k
カラーミーショップ 2022 / COLORME SHOP 2022
kenchan
0
660
Amazon RDS移行のための 性能検証でわかった2つのこと
kenchan
3
4k
ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから / The new architecture of COLORME SHOP in the Post-COVID-19 world
kenchan
2
2k
Other Decks in Technology
See All in Technology
Platform Engineering for Private Cloud
cote
PRO
0
110
Google CloudのAI Agent関連のサービス紹介
shukob
0
150
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
270
Cursorを全エンジニアに配布 その先に見据えるAI駆動開発の未来 / 2025-05-13-forkwell-ai-study-1-cursor-at-loglass
itohiro73
2
800
Why every SwiftUI developer should care about the Environment - iOSKonf25
peterfriese
0
160
Coding Agentに値札を付けろ
watany
3
590
4月15日の AZ 障害をテクサポの中の人目線で振り返ってみる
kazzpapa3
3
190
LLMの開発と社会実装の今と未来 / AI Builders' Community (ABC) vol.2
pfn
PRO
3
240
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
nkzn
2
510
Tailwind CSS の小話「コンテナークエリーって便利」
yamaday
0
150
事業と組織から目を逸らずに技術でリードする
ogugu9
19
5.3k
Google Cloud Next 2025 Recap マーケティング施策の運用及び開発を支援するAIの活用 / Use of AI to support operation and development of marketing campaign
atsushiyoshikawa
0
410
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
590
Practical Orchestrator
shlominoach
187
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
How to Ace a Technical Interview
jacobian
276
23k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
810
Become a Pro
speakerdeck
PRO
28
5.3k
We Have a Design System, Now What?
morganepeng
52
7.6k
Being A Developer After 40
akosma
91
590k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
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のプラグインがある よ。