「Sphinxをはじめよう」を上梓しました

@r_rudi, @shimizukawa, @usaturn の 3人と「Sphinxをはじめよう」を上梓しました *1。Sphinx 作者の Georg Brandl が来日していたときに話をしたのですが、 どうやら世界初の Sphinx 解説書籍のようです。 オライリーさんの概要説明を引用します。 Officeツ…

drone.io で他のリポジトリのテストを開始させる

次のような依存関係を持っているリポジトリがある場合は B リポジトリの修正が行われたときに A リポジトリのテストも実行してほしいものです。 Jenkins では「他のプロジェクトのビルド」を指定することで、依存関係のある他のプロジェクトのビルドを実行す…

PyPI: testing.mysqld と testing.cassandra をリリースしました。

PyPI に testing.mysqld と testing.cassandra をリリースしました。 パッケージ名に test と付いている通り、テストに使うモジュールです。 11/21訂正: test というパッケージは python 本体で使われていたので、パッケージ名を testing.* に変更しました。…

drone.io の python は virtualenv で管理されてることに気づいた

drone.io で PIL を使いたい (けどビルドに時間掛けたくない)ので sudo apt-get install python-imaging という記述を commands に追加したのだけど、見つからないと言われてしまった。おかしいなと思って調べたら virtualenv で管理されているようです。 $ …

rails で config って名前のアクションを作ったらエラーになった

質問されてすぐに答えられなかったのでメモ。rails で $ bundle exec rails g controller Users config って感じで、config というアクションを持つコントローラを作って、そのページにアクセスすると NoMethodError (undefined method `allow_forgery_prote…

Chef で Yum のパッケージキャッシュを有効にする

yum のパッケージキャッシュについて - apatheia.info を見て、手元のマシンでも yum のパッケージキャッシュを有効にすることにした。といっても、yum cookbook には node['yum']['keepcache'] という属性があるので、その値をセットしておくだけで良い。 …

みんな機密情報ってどうやって設置/管理してるんだろう?

たまにはモヤモヤしてることを書き連ねてみます。 この記事に答えはないので、期待しないで読み進めてください。 データベースの接続情報とかの機密情報ってどうやって管理するの? よく言われるのは DB への接続情報とか、AWS とかのトークンはアプリのコー…

続・PHP のドキュメントを Sphinx で書いてみる (phpautodoc を作ってみた) #sphinxjp

去年の12月にPHP のドキュメントを Sphinx で書いてみる (phpautodoc を作ってみた) #sphinxjpという記事を書きました。 その時に、PHP からドキュメントを抽出する phpautodoc というのを作ったのですが、 その後他の作業に夢中になっていたので自分でも使…

はじめての cloud-init:hostname を Name タグのものにそろえる

EC2 インスタンスの起動時に、せっかく Name タグがあるのに hostname と同じものになっていないのはもったいないな、と思って それを自動的にやる方法について調べてみました。Amazon Linux や Ubuntu には、EC2 インスタンスの起動時にインスタンスの user…

chef で mysql のユーザやデータベースを管理する

以前、ある環境のデータベースを作ったときは、忙しくて手が回らないという理由で ユーザやデータベースのセットアップは script リソースを作ってえいやと済ませてしまった tk0miya です。こんにちは。今回はすべて community cookbook で環境を作る方法を…

buildout-cache って cookbook を作った

python 使いでなおかつ buildout 使ってる僕のために buildout-cache の設定をする cookbook 作りました。 https://github.com/tk0miya/chef-buildout-cacherun_list に "recipe[buildout-cache]" を突っ込んでおくと、指定したユーザのホームディレクトリに…

将来 knife plugin を作るつもりなら、ちゃんと生まれてくる gem の名前は考えてくるんだぞ。

knife plugin を書いたら、gem の名前が悪いせいでうまく動かなかった @tk0miya です。 gem の名前が良くないと、たとえちゃんと動くコードが合ったとしても、knife plugin として動作しません。 knife plugin の作り方(超ざっくり版)。 knife plugin を作る…

vagrant 1.0系から 1.2系にアップグレードしてハマった話。

vagrant box list では box があるというのに、vagrant up するとそんな box 知らないって言われる問題にぶち当たったので、 まだ vagrant 1.0 系で様子見をしてる人向けにメモっておきます。ちなみにこの内容は Fixing “The box … could not be found” in t…

自分メモ:knife-ec2 が DEPRECATION メッセージを出すときは multi_json を突っ込む

つい数日前から knife-ec2 を使い始めました。 chef-client は使わないのですが、コマンドラインからえいやっとインスタンスを作ったり壊したりできるので非常に便利です。で、タイトルの話なんですが、knife-ec2 を使うといつもこんな Deprecation メッセー…

capistrano-ec2tag について調べてた

capistrano と ec2 のうまい付き合い方について調べていて、capistrano-ec2tag という gem を見つけたので試してみてました。 こいつは capistrano-ec2group を参考にして作られたもので、 起動している EC2 インスタンスをタグで絞り込んで、capistrano で…

capistrano-pit-aws って gem を作った

最近、capistrano 経由で AWS の API を叩く遊びをしているのだけど、 deploy.rb の中で set :aws_access_key_id, ... set :aws_secret_access_key, ... とかって書くのがイヤになった。 アクセスキーをコミットして何処かに置くというのが気持ち悪いし、誰…

knife-solo を vagrant の組み合わせでは、古い chef-solo が利用されてしまう問題

みんな大好き knife-solo ですが、今日使ってみて一個ハマりました。knife-solo は sudo 経由で chef-solo コマンドを呼び出しているのですが、 現在のバージョンは単に sudo chef-solo しているだけなので、 /usr/local/bin 以下に chef-solo がインストー…

knife-solo が librarian-chef をサポートしていた件について

今朝まで知らなかったのですが、knife-solo は librarian-chef をサポートしているようです。knife-solo のプロジェクトディレクトリ内に Cheffile が存在すると、自動的に librarian-chef install を実行してくれます。 実行時の出力を見ると、上から 3行目…

Capistrano の parallel の罠を踏み抜いた。

capistrano の parallel を使っていて罠にハマったのでご報告致します。 parallel おさらい parallel は条件に基づいて、実行するコマンドを変化させるコマンドです。たとえば、 task :setup do parallel do |session| session.when "in?(:app)", "echo this…

multistage 環境を使う capisrano-unicorn 使いはいますぐ 0.1.7 に上げよう

capistrano + ext/multistage で capistrano-unicorn を使っている人で、 よくわからないけど set :rails_env, "staging" set :app_env, "staging" set :unicorn_env, "staging" って書かないと unicorn がうまく動かないと思ったことがある人こんにちは、tk…

rvm-capistrano-ruby193deps-centos をリリースしました。

今は rbenv をメインで使っているのですが、rvm を使う機会もまだまだあったりします。これまで、capistrano + rvm-capistrano を使って環境を作っていたのですが、 今日試したところ、以前作った deploy.rb が動かなくなっていました。 どうも、rvm が libf…

Re: ChefとCapistranoの境界線 #opschef_ja

この間の Chef Casual Talks での id:nekoruri さんの発表、ChefとCapistranoの境界線 に対する 僕の考え方を書いておこうと思います。 Chefを導入する時の「考え方」 完全に同意します。 僕は community cookbooks を使おうとみんなに吹聴して回っているよ…

knife-solo 0.2.0 で rsync エラーによって苦しまないためのたったひとつの方法

結論としては、0.2.0 以降のバージョンを使いましょう。今現在は github から持ってきて使いましょう、ということです(挨拶)昨日、Jenkins cookbook のバグ潰しをしていたら、@chiastolite さんからこんなことを教えてもらいました。 @shimizukawa @tk0miya …

chef omnibus installer は /opt 以外にもファイルを作るらしい

昨日は Chef Casual Talk Vol.1 に参加してきました。 chef に関しては、これだという定石がなかなか見つかっていない段階のように感じられるので こうして情報交換できる場があるというのはとても嬉しいことですね。 これから毎月開催していくとのことなの…

librarian-chef のパッケージ名が librarian から librarian-chef に変更されてた

タイトル読み終わった人は本文読まなくていいです(挨拶)。@tk0miya です。さっき id:shimizukawa にブログコメントで教えてもらったんですが、 librarian-chef の gem パッケージが librarian-chef って名前に変わったようです。 バージョンアップする際は気…

Chef を使って CentOS で MySQL 5.5系のセットアップを行う

昨日の夜、@shimizukawa がこんなことを言っていた。 CentOSにyumでMySQL入れたら5.1が入った・・2013-04-02 19:25:03 via webというわけで、この記事では chef を使って CentOS で MySQL 5.5 系をセットアップする方法を紹介しよう。 この方法は CentOS 5.x…

僕が使っている vagrant plugins

昨日の vagrant + chef 勉強会 では vagrant を初めて使う人や、 vagrant は使っているけどプラグインは特に使っていないという人がいたので、 いま僕が利用している vagrant plugins について紹介します。なお、現在 vagrant は 1.1系がリリースされていま…

vagrant + chef 勉強会に参加しながら、内職してた話。

vagrant + chef 勉強会に参加した話 Twitter で偶然見かけた vagrant + chef 勉強会に参加してきました。 これまで、あまり chef 使いと交流することなく、ひとりでこつこつやっていたので、 「こんなふうに使ってるよ」とか「こんなプラグインいいよ」みた…

Riak CS をインストールする優れたやり方

一部の人が愛してやまない(らしい)、Riak CS がオープンソース化されました。 id:kuenishi が【緊急】 Riak Cloud Storage が OSS になりました【速報】なんて記事を書いて、 インストール方法を説明していますが、手順が多すぎてなにいってんだかぜんぜんわ…

続・迷いながらも勉強会に参加していくひとつのやり方。

続きじゃないけれど、関連しているのでタイトルには「続」と付けました。さっきの記事は初学者というか、まだコミュニティに慣れていない人の話を書いたのだけど、 書きながら、そもそもコミュニティ側の受け入れ体制って話もあるよなあ、と思ったわけです。…