chef-solo&vagrantですぐに環境構築できるようにしたらack入れるときにつまずいたのでメモ。
##ackコマンド
grepよりも高速かつきれいに表示してくれてとても便利!
特に意識せずに
$ ack 検索したい文字列
とするだけでそのディレクトリ配下のファイルからtestという単語が検索されます。
grepより文字数少なくてすてき!
不要そうなファイルは検索対象から省いてしまうので、
-aオプションをつけると全ファイル検索してくれます。
##ackをchefから入れてみた
ackにはお世話になっていたので、vagrantにも入れようとしました。
chefを実行させたときのコマンドは
$ knife solo cook -V 192.168.33.10
しかし、ackを入れるときに下記のエラーが出力されどうしてもつまずいてしまう。。
Errno::ENOENT
-------------
No such file or directory - create symlink
Resource Declaration:
---------------------
In /home/vagrant/chef-solo/cookbooks-2/ack/ recipes/default.rb
11: execute "create symlink" do
12: case node[:platform]
13: when "debian","ubuntu"
14: if !node[:ack][:symlink_as].nil? && node[:ack][:symlink_as].length > 0
15: command "ln -nsf /usr/bin/ack-grep #{node[:ack][:symlink_as]}"
16: creates "#{node[:ack][:symlink_as]}"
17: end
18: end
これで結構悩んでたんですが、
原因はrecipeの記述ミスzで、11行目と18行目を削除したら動きました。
create symlinkというコマンドが間違っていた模様。
以上です。
PS.chefを学習するときに特にお世話になったのはこちら。
chef-solo - Chefを読んで実行するための全知識 - Qiita
細かいことまで載っていてとても参考になりました。
knifeによるChefの実行 - Qiita
こちらはエラーが出たときに参考にしました。