local PCのブラウザから「http://192.168.33.10:8080」を指定。すると、下記のように表示されます。 動作確認後、一旦「Ctl + c」でunicorn_railsを停止します。
2013年7月28日日曜日
2013年7月25日木曜日
vagrant + chef solo + Berkshelf環境で、opscode-cookbookと自作cookを混在させたらハマった。その対応
前回のblogで、berks cookbookコマンドを用いたrepository作成の手順を紹介しました。
ただし、berks cookbookコマンドで作成したrepositoryはcookbookそのものでもあり、defaultの設定・環境だと、サードパーティのcookbook利用する場合、ファイル構成が分かりにくいものとなってしまいます。
そこで、前回ハマった「knife solo init」コマンドで作成したrepositoryにVagrantfileを用意し、サードパーティー(opscode-cookbooks)と自作cookbookを混在させる方法について再度見直しを行い、正常動作できるようにしたいと思います。
入門Chef Solo
「こっちのやり方の方がいいよ」など情報ありましたら、お知らせいただけたら幸いです。
Tweet
ただし、berks cookbookコマンドで作成したrepositoryはcookbookそのものでもあり、defaultの設定・環境だと、サードパーティのcookbook利用する場合、ファイル構成が分かりにくいものとなってしまいます。
そこで、前回ハマった「knife solo init」コマンドで作成したrepositoryにVagrantfileを用意し、サードパーティー(opscode-cookbooks)と自作cookbookを混在させる方法について再度見直しを行い、正常動作できるようにしたいと思います。
対応方法
先に結論を書くと、Berksfileに自作cookbookをpathで明示的に指定してあげました。こうすることで、opscodeのcookbookはネットからDL(git clone?)されるのに対して、自作cookbookはlocalの指定されたpathのdirを参照し、適切に動作するようになりました。pochi-2:chef-repo snumano$ cat Berksfile site :opscode cookbook 'apt', '= 1.9.0' cookbook 'mysql' cookbook 'nginx' cookbook 'database' cookbook 'myapp', path: './site-cookbooks/myapp' #追加行
コードはこちら
https://github.com/snumano/vagrant-knifesolo2参考
http://berkshelf.com/入門Chef Solo
まとめ
今回でやっと、Vagrant + Chef Solo + Berkshelfの対応手順が整理できました。「こっちのやり方の方がいいよ」など情報ありましたら、お知らせいただけたら幸いです。
2013年7月23日火曜日
vagrant + chef solo環境で、opscode-cookbookと自作cookを混在させたらハマった
表題の通りハマったので忘備録として残しておきます。
Tweet
事象
- knife solo initコマンドでrepositoryを作成後、opscode-cookbookからnginx,mysql,databaseなどのcookbookをberkshelfコマンドでinstall。
- また、自作cookbookをknife cookbook createコマンドで作成。
- 自作cookbookのrecipeを書いた後、vagrant upすると、自作cookbookが見つからない旨のerrorが発生。
- error内容を確認すると、vagrant up時に、brrkshelfコマンドが実行され、Berksfileに記載されたcookbooksが~/.berkshelf/default/vagrant/berkshelf-***-default以下に作成され、chef soloコマンドにて仮想環境に転送されるよう。しかし、このberkshelf-***-default以下に、自作cookbookは作成されず、結果errorとなっている模様。
- ちなみに、下記のopscode-cookbookのchef-repoをcloneした場合も、knife solo initの場合と同様に、errorになることを確認した。
git clone https://github.com/opscode/chef-repo.git
コード
原因
- 不明
対応
- Berkfsfileを_Berksfileにrename後、vagrant up実行すると正常に処理完了した。
berkshelfコマンドの実行を抑制する事で、上述の事象は発生しなくなった。
しかし、利用はよくわからない。 - このままだと気持ち悪いので、Berkshelfコマンドを用いたrepository作成を試したところ、vagrant upの正常実行を確認できた。
https://github.com/snumano/vagrant-berkshelf
まとめ
- Berkshelfコマンドでrepository作成した場合、knife solo initした場合と比較して、ファイル構成とVagrantfileの設定内容が異なる事は確認できたが、どの部分が今回の動作の違いになっているのかは、今のところ不明。
- 本事象の原因と根本対策について、どなたか教えていただけたら幸いです。
(2013/7/23追記:Berksfileに自作cookbookをpath optionとともに追記することで、本事象を回避できることを確認しました。後日blogにまとめます) - berks cookbokコマンドは、cookbook = repositoryとして扱うようです。上述のサンプルコードでは、repository名であるchef-repoがそのままcookbook名になっているので、少しかっこ悪い。。。
最後に、入門Chef Soloは何回も読み返して参考にさせていただきました。
2013年7月18日木曜日
vagrant + knife soloでnginxをinstallしてみる
備忘録としてまとめます。
参考:
入門Chef Solo
http://docs.komagata.org/5098
Tweet
local環境
- MacOSX 10.8.4
- ruby 1.9.3p327
作成する仮想環境
- Ubuntu 12.04
- Nginx
手順
- chef-soloをinstall
- knife-soloをinstall。最新のver0.3.0をinstallするため、githubからcloneします。
$ git clone git@github.com:matschaffer/knife-solo.git $ cd knife-solo $ bundle $ bundle exec rake install
- Virual Boxをinstall
こちらからDownLoad - vagrantをinstall
- vagrant環境を作成
vagrantbox.esから使いたいboxを選ぶ
$ vagrant box add ubuntu12_04 http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box $ vagrant box list $ mkdir Ubuntu $ cd Ubuntu $ vagrant init ubuntu12_04 $ vagrant up
下記で仮想環境にアクセスできる
$ vagrant ssh
knife soloでsshアクセスできるように下記を実施。host名はdev1とする。
$ vagrant ssh-config --host dev1 >> ~/.ssh/config
- 仮想環境にknife soloをinstall
$ knife solo prepare dev1
- cookbookレポジトリを作成。
とりあえず、上述のVagrantのdirに一緒に作成しておきます。
$ knife solo init chef-repo $ cd chef-repo $ git init $ git add . $ git commit -m 'init'
- 仮想環境にinstallするレシピを書く
$knife cookbook create nginx -o site-cookbooks $vi site-cookbooks/nginx/recipes/default.rb package 'nginx' do action :install end service "nginx" do supports :status => true, :restart => true, :reload => true action [ :enable, :start ] end
$ vi nodes/dev1.json { "run_list":[ "nginx" ] }
- 仮想環境にレシピを適用
$ knife solo cook dev1
- 仮想環境側で確認
nginxのバージョンが最新にならない。。。srcからinstallしようかな。。。
$ nginx -v nginx version: nginx/1.1.19
- 動作確認したら、recipeをcommit
$ git add ./site-cookbooks/nginx/ $ git commit -m 'add nginx recipe'
$ gem install chef $ knife -v Chef: 11.4.4
$ gem install vagrant
参考:
入門Chef Solo
http://docs.komagata.org/5098
2013年7月15日月曜日
「プログラミング入門 - Rubyを使って -」をやってみた その1
Rubyの勉強に下記サイトの練習問題に挑戦します。1章はirbを使ってます。
プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama
今回はここまで。6章以降は後日。。。
Tweet
プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama
1.数(Numaber)
- 1年は何時間でしょうか?
うるう年ではないとします。
>> 24*365
=> 8760
- 10年間は何分でしょうか?
うるう年が2回ありますので、計算に含めます。
>> 60*24*(365*10+10/4)
=> 5258880
- あなたが生まれてから今日まで何秒たっているでしょうか?
>> (Time.now - Time.local(1973,12,3,0,0,0)).to_i
=> 1250124789
- あなたは一生のうちいくつのチョコレートを食べたいですか?
1週間に1つのチョコを食べるとします。
>> (80*365)/7
=> 4171
- 私が生まれてから10億3400万秒 たっているとしたら、私は今何歳でしょう
>> 1034000000/(60*60*24*365)
=> 32
4.数と文字列の変換
- 最初に姓、次に名前を聞いて、最後にフルネームに対してあいさつを するようなプログラムを書いてみましょう。
pochi-2:Test snumano$ cat 4-1.rb #!/usr/bin/ruby puts 'こんにちは。あなたの姓を入力してください' last = gets.chomp puts '次は、あなたの名を入力してください' first = gets.chomp puts 'あなたの名前は' + first + ' ' + last + 'ですね。' pochi-2:Test snumano$ ./4-1.rb こんにちは。あなたの姓を入力してください Numano 次は、あなたの名を入力してください Shugo あなたの名前はShugo Numanoですね。
- 好きな数を入力してもらい、それに1を加えて、その結果を ベターな 数字として薦めるプログラムを書きましょう。
pochi-2:Test snumano$ cat 4-1.rb #!/usr/bin/ruby puts 'こんにちは。あなたの姓を入力してください' last = gets.chomp puts '次は、あなたの名を入力してください' first = gets.chomp puts 'あなたの名前は' + first + ' ' + last + 'ですね。' pochi-2:Test snumano$ ./4-1.rb こんにちは。あなたの姓を入力してください Numano 次は、あなたの名を入力してください Shugo あなたの名前はShugo Numanoですね。
5.メソッド(method)
- 「怒ったボス」のプログラム
pochi-2:Test snumano$ cat 5-1.rb #!/usr/bin/ruby $KCODE = 'UTF-8' puts '望みは何だ?' hope = gets.chomp if hope =~ /給料上げてください/ then puts 'なにぃ? "給料上げてください" だとー!! おまえは首だ!! ' else puts 'なにぃ?' + hope + 'だとー!!お前は首だ!!' end pochi-2:Test snumano$ ./5-1.rb 望みは何だ? 休みたい なにぃ?休みたいだとー!!お前は首だ!! pochi-2:Test snumano$ ./5-1.rb 望みは何だ? 給料上げてください なにぃ? "給料上げてください" だとー!! おまえは首だ!!
- 「目次」を表示する プログラム
pochi-2:Test snumano$ cat 5-2.rb #!/usr/bin/ruby $KCODE = 'UTF-8' lineWidth = 20 lineWidth2 = 10 index = '目次' chap1 = '1章: 数' chap1Page = 'p. 1' chap2 = '2章: 文字' chap2Page = 'p. 72' chap3 = '3章: 変数' chap3Page = 'p. 118' puts index.center(lineWidth) puts chap1.ljust(lineWidth) + chap1Page.center(lineWidth2) puts chap2.ljust(lineWidth) + chap2Page.center(lineWidth2) puts chap3.ljust(lineWidth) + chap3Page.center(lineWidth2) pochi-2:Test snumano$ ./5-2.rb 目次 1章: 数 p. 1 2章: 文字 p. 72 3章: 変数 p. 118
2013年7月14日日曜日
rbenv install時に、.bashrcと.bash_profile動作の違いでつまずいた
MacOSXにて、複数versionのrubyを切り替えるツールとしてrvmを使っていましたが、rbenvに切り替える事にしました。
rbenv installの際つまずいたのですが、原因は「.bashrcと.bash_profileの動作の違いを理解していなかった」事でした。
詳細は下記の通りです。
久しぶりにshellの設定を触ったので、という言い訳で。。。
参考:
rbenvでRubyを複数バージョンインストールする
http://www.proton.jp/main/apps/bash.html
http://stackoverflow.com/questions/10940736/rbenv-not-changing-ruby-version
http://stackoverflow.com/questions/7780030/how-to-fix-terminal-not-loading-bashrc-on-os-x-lion
rbenv installの際つまずいたのですが、原因は「.bashrcと.bash_profileの動作の違いを理解していなかった」事でした。
詳細は下記の通りです。
- 下記ブログを参考にさせていただきました
Mountain Lion に rbenv を導入 - :soy_milk: - 上記ブログを参考に対応した場合、対応直後が正常にruby versionの切り替え実施できるのですが、MacBook再起動すると「rbenv globalコマンドでrubyのバージョンを変更しても、実際には変更できない」事象が発生しました。しかも、最初再起動時に発生した事に気づかず、「がちゃがちゃ設定をいじっている間に、rbenvの動作がおかしくなった」と思っていたため、原因の特定に時間がかかりました。
pochi-2:~ snumano$ rbenv versions
system
* 1.9.3-p327 (set by /Users/snumano/.rbenv/version)
2.0.0-p247
pochi-2:~ snumano$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
pochi-2:~ snumano$ rbenv global 1.9.3-p327
pochi-2:~ snumano$ rbenv versions
system
* 1.9.3-p327 (set by /Users/snumano/.rbenv/version)
2.0.0-p247
pochi-2:~ snumano$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
- 対応は下記どちらかを実施します。
- 「.bashrc」の代わりに「.bash_profile」を指定する
- もしくは、「.bash_profile」の最後に下記設定を加えておく。
source ~/.bashrc
- 理由は下記の通り。今回の発生した事象は、後者になります。
- .bashrcはbash起動時に読み込まれる
- .bash_profileはログインシェルとして起動された時に読み込まれる
久しぶりにshellの設定を触ったので、という言い訳で。。。
参考:
rbenvでRubyを複数バージョンインストールする
http://www.proton.jp/main/apps/bash.html
http://stackoverflow.com/questions/10940736/rbenv-not-changing-ruby-version
http://stackoverflow.com/questions/7780030/how-to-fix-terminal-not-loading-bashrc-on-os-x-lion
ラベル:
bash rbenv
登録:
投稿 (Atom)