chef cookbook 紹介シリーズ(2): python
明日と明後日、多摩の方で開催される OSC 2013 Tokyo/Spring に参加してきます。
Sphinx-users.jp のブースにいるので、興味がある人は声をかけてください。
というわけで、普段の出勤時間より早く起きなくちゃいけないというのに、
今日もこつこつブログを書くことにします。
お手軽に cookbook 紹介第2段ということで、今日は python cookbook を紹介します。
今、ちょうどお仕事で python を使っているのでこれは非常に重要な cookbook だったりします。
使い方
python cookbook は run_list に追加しておくだけで、
- python のインストール
- pip のインストール
- virtualenv のインストール
をやってくれます。
{ "run_list" : [ "recipe[python]" ] }
通常だと OS のパッケージを使うのですが、大抵古いものがインストールされます。
RedHat 系では EPEL を使ってやや新しいものを入れることができますが、
新しいバージョンが必要な場合は install_method オプション、version オプションを使ってソースからインストールするとよいでしょう。
{ "python" : { "install_method" : "source", "version" : "2.7.3", "checksum" : "c57477edd6d18bd9eeca2f21add73919" }, "run_list" : [ "recipe[python]" ] }
python_pip and python_virtualenv
python cookbook では python_pip と python_virtualenv という resource を提供しています。
これを利用することでライブラリや virtualenv 環境を作ることができます。
例えば、mercurial を pip でインストールするには、自分のレシピの中で
include_recipe "python" python_pip "mercurial" do action :upgrade end
のように書くことで最新版の mercurial をインストールすることができます。*1
また、もうひとつの python_virtualenv はこんな風に利用します。
include_recipe "python" python_virtualenv "/home/tk0miya/some_app" do action :create owner "tk0miya" group "tk0miya" end python_pip "mercurial" do action :install virtualenv "/home/tk0miya/some_app" end
この python cookbook は python を利用した環境を作る際に必須の cookbook です。
python 製のツールを入れる際も、新しいバージョンのものを使うために python_pip も欠かせません。
自分で python 関連の何かを入れる際に、是非使ってみてください。