ruby でかかれたプロセスライフサイクル管理のフレームワーク god。
肝心のgodが止まらないようにUpstartでrespawnさせます。
2011/07/07
2011/04/25
Chef-Clientを既存Gem環境に影響なくインストール
Chefは便利だが、少なくともRuby+Gems(Chef)まで必須で、もちろん依存するGemsも必要だ。
Rubyを利用していない環境ならともかく、他とお互い干渉しないようにしておきたい。
ただのBundlerの紹介になるが、Chef-Clientを既存環境に影響ないよう使ってみる。
Rubyを利用していない環境ならともかく、他とお互い干渉しないようにしておきたい。
ただのBundlerの紹介になるが、Chef-Clientを既存環境に影響ないよう使ってみる。
2011/04/01
refinerycms, radiant などをbundleでインストール
railsで製造されたアプリケーションは、gemでインストールしたコマンドを使ってサイトをビルドするタイプのものがある。
refinerycms, radiant などがそういう感じ。
たとえばrefinerycmsだとこの4行でインストールOKとあるが。。
このやり方は標準で読み込むGEMSがやたらと増えるしバージョン依存とかいやだ。
これをbundlerを使って何とか影響範囲をRaisHome内にとどめてみよう。
富豪的ともいわれるが。
refinerycms, radiant などがそういう感じ。
たとえばrefinerycmsだとこの4行でインストールOKとあるが。。
gem install refinerycms
refinerycms path/to/my_new_app
cd path/to/my_new_app/
rails serverこのやり方は標準で読み込むGEMSがやたらと増えるしバージョン依存とかいやだ。
これをbundlerを使って何とか影響範囲をRaisHome内にとどめてみよう。
富豪的ともいわれるが。
2011/03/31
Nginx用の a2ensite, a2dissite がないのでツールを作る
最近ChefのCookbookを触っているが、Rubyをちゃんと読めるほうが都合がよいので練習がてら。
ubuntuなどのdeb系はapache httpdのサイト管理がよく作られており、サイト単位の有効無効を a2ensite, a2dissiteというツールで切り替えるように工夫がされています。
Nginxでもコマンドでサイト管理やりたいなあと思い作成。
3つのメソッド(サブコマンド)を持ちます、オプションなしでたたくと一応使い方を出すようにしました。
とか
ngctlにエイリアスして
このようにします。
リストはこんな感じで出します。
リロードがいやな人はコメントアウトしたりgracefulに相当する手続きがあるのでそれを変わりに仕込みましょう。
この辺は改良の余地が大きいですね。
自分でつかうのでGithubにも置いてます。
https://github.com/sawanoboly/optools/blob/master/ngsitectl.rb
うちはハイライトしてないからGithubのほうが見やすいですね。
そうそう、1.9.2 p180 で作っているので他のVerについては動くか見てないです。
ngsitectl.rb
ubuntuなどのdeb系はapache httpdのサイト管理がよく作られており、サイト単位の有効無効を a2ensite, a2dissiteというツールで切り替えるように工夫がされています。
Nginxでもコマンドでサイト管理やりたいなあと思い作成。
使い方
3つのメソッド(サブコマンド)を持ちます、オプションなしでたたくと一応使い方を出すようにしました。
- list:sites-available にあるコンフィグファイルをリストアップ。
現在有効なものは+(プラス)を、無効なサイトは-(マイナス)を付与して表示。 - enable {configfile}:sites-enabled にリンクを作成してnginxをリロード。
- disable {configfile}:sites-enabled からリンクを削除してnginxをリロード。
コマンド例
ngsitectl.rb disable defaultとか
ngctlにエイリアスして
ngctl enable example.comこのようにします。
リストはこんな感じで出します。
# ngctl list
- example.com
+ 8082
+ rprox.conf
+ 8081
- default
+ 8083
+ ssl_rprox.confリロードがいやな人はコメントアウトしたりgracefulに相当する手続きがあるのでそれを変わりに仕込みましょう。
この辺は改良の余地が大きいですね。
コード
自分でつかうのでGithubにも置いてます。
https://github.com/sawanoboly/optools/blob/master/ngsitectl.rb
うちはハイライトしてないからGithubのほうが見やすいですね。
そうそう、1.9.2 p180 で作っているので他のVerについては動くか見てないです。
ngsitectl.rb
#!/usr/bin/env ruby
# encording: utf-8
## Const
AvailDir = "/etc/nginx/sites-available/"
EnableDir = "/etc/nginx/sites-enabled/"
# list up all site and add "+" for enable sites.
def list(sitename)
sitesall = Dir.entries(AvailDir)
# exclude dots
sites = sitesall.select{|elem| elem != "." and elem !=".."}
# enabled sites check.
sites.each do |site|
if File.exist?(EnableDir + site) then
puts "+ " + site
else
puts "- " + site
# File.symlink(AvailDir + site, EnableDir + site)
end
end
end
def enable(sitename)
if File.exist?(EnableDir + sitename) then
puts "Site:" + sitename + " is already enabled.\nDo nothing."
elsif File.exist?(AvailDir + sitename) then
puts "enable: " + sitename
File.symlink(AvailDir + sitename, EnableDir + sitename)
puts `/etc/init.d/nginx reload`
else
puts "Site:" + sitename + " Config not found."
end
list(sitename)
end
def disable(sitename)
if File.exist?(AvailDir + sitename) then
if File.exist?(EnableDir + sitename) then
puts "disable: " + sitename
File.unlink(EnableDir + sitename)
puts `/etc/init.d/nginx reload`
else
puts "Site:" + sitename + " is already disabled.\nDo nothing."
end
else
puts "Site:" + sitename + " Config not found."
end
list(sitename)
end
begin
method(ARGV[0]).call(ARGV[1])
rescue TypeError => ex then
puts <<"HEREDOCS"
Nginx site control script.
Usage:
list: list all available sites
enable {sitename}: enable site and reload nginx
disable {sitename}: disable site and reload nginx
HEREDOCS
rescue => ex
puts "Exception " + "#{ex.class}"
puts "#{ex.message}"
puts
puts <<"HEREDOCS"
Nginx site control script.
Usage:
list: list all available sites
enable {sitename}: enable site and reload nginx
disable {sitename}: disable site and reload nginx
HEREDOCS
end
2011/03/22
2010/11/11
Redmineをサーバーカウボーイにセットアップ、ワンコインrailsでプロジェクト 管理
ファーストサーバのサーバーカウボーイから PHPバージョンアップのお知らせ とニュースが出ています。
phpが5.1から5.2になったことで、testlinkやらmagentoやら動作します。


私はサーバーカウボーイの開発もやっているので当然知っているのですが、、、実はそれに便乗してRuby対応もパワーアップしています。
どのくらいRuby対応が進んだかって言うと、Redmineが動くくらい、それも1.0.x。
↓ということでセットアップしてみました。

まだDBの流し込みなど手動でやらなければなりませんが、railsがしっかり使えるのがわかります。
http://demo.cowboyhacks.com/redmine/
この環境、暫くは guest / guest でログインできるようにしておくので、サーバーカウボーイみたいな廉価系サーバでのrailsって使用感どうよと思ったら試してみてはどうでしょうか。
手順はまた今度書きますが、興味があったらツイッターとかで聞いてくれてもOK。
phpが5.1から5.2になったことで、testlinkやらmagentoやら動作します。
私はサーバーカウボーイの開発もやっているので当然知っているのですが、、、実はそれに便乗してRuby対応もパワーアップしています。
どのくらいRuby対応が進んだかって言うと、Redmineが動くくらい、それも1.0.x。
↓ということでセットアップしてみました。

まだDBの流し込みなど手動でやらなければなりませんが、railsがしっかり使えるのがわかります。
http://demo.cowboyhacks.com/redmine/
この環境、暫くは guest / guest でログインできるようにしておくので、サーバーカウボーイみたいな廉価系サーバでのrailsって使用感どうよと思ったら試してみてはどうでしょうか。
手順はまた今度書きますが、興味があったらツイッターとかで聞いてくれてもOK。
2010/11/02
railsアプリケーションでvenderにgemsを入れる
railsアプリケーションをデプロイしたり移行する際、目的のサーバに必要なgemsが無く、勝手にインストールも難しいとする。
とりあえずgemsがインストール済みの環境でunpackしてから持っていけば使える。
{RAILS_ROOT}/vender/gems
に移動して、
gem unpack hogehoge
とすればgemsのファイル群が展開されるのでそのまま持っていく。
rubygemsすらも無いという環境だったらば、rubygems.rbとrubygems/を{RAILS_ROOT}に置けばWebrickなら動く。
とりあえずgemsがインストール済みの環境でunpackしてから持っていけば使える。
{RAILS_ROOT}/vender/gems
に移動して、
gem unpack hogehoge
とすればgemsのファイル群が展開されるのでそのまま持っていく。
rubygemsすらも無いという環境だったらば、rubygems.rbとrubygems/を{RAILS_ROOT}に置けばWebrickなら動く。
2010/09/26
GAEでjruby、windowsからデプロイ・後編
前回はgoogle-appengine のgemを入れたとこまでやったので、その後。
続きと言いつつ、windowsでやるなら最初からjrubyでやったほうが楽ぽいのでローカルからjruby、こんな環境で。
続きと言いつつ、windowsでやるなら最初からjrubyでやったほうが楽ぽいのでローカルからjruby、こんな環境で。
C:\ruby\jruby-1.5.2\bin\jruby --version
jruby 1.5.2 (ruby 1.8.7 patchlevel 249) (2010-08-20 1c5e29d) (Java HotSpot(TM) Client VM 1.6.0_21) [x86-java]
2010/09/24
GAEでjruby、windowsからデプロイ・前編
以前は色々と面倒だったが、google-appengineというgemでJrubyをGAEに持っていきやすくなったと聞いてwindowsからアプリのデプロイでもしようとしてみました。
rubyからかよ!と思うかもですが...
jrubyは入れてたのですが、参考サイトがjrubyでなくて普通のruby(cruby)だったので、それにならって普通のrubyをWindows7に入れる所から。
Rubyのダウンロード
mswin32版のバイナリをいれます。
一番下にあった1.9.2だとgemsのpathエラーとかになって困ったので1.9.1にします。
ZIPを展開してC:\ruby\ruby1.9.1\ に配置、パスは必要になったら通そう。
pythonとかrubyはとりあえず置けばバージョン別につかえていいよね。
さてgemsが要る。
まずrubyを入れて、gemを使えるまで
rubyからかよ!と思うかもですが...
jrubyは入れてたのですが、参考サイトがjrubyでなくて普通のruby(cruby)だったので、それにならって普通のrubyをWindows7に入れる所から。
Rubyのダウンロード
http://www.ruby-lang.org/ja/downloads/
mswin32版のバイナリをいれます。
一番下にあった1.9.2だとgemsのpathエラーとかになって困ったので1.9.1にします。
ZIPを展開してC:\ruby\ruby1.9.1\ に配置、パスは必要になったら通そう。
pythonとかrubyはとりあえず置けばバージョン別につかえていいよね。
さてgemsが要る。
登録:
投稿 (Atom)
