chefから起動するスクリプトが動作しない
chefのscriptリソースでtarでブツを展開したあとに、特定のシェルスクリプトを叩くというレシピを書きました。
このシェルスクリプト、通常にログインした状態ではちゃんと動作するのですが、chef経由だとなぜだか動作しない。
レシピとしてはこんな感じ。
scipt "hogehoge" do not if "条件いろいろ" interpreter "bash" user "fuga" group "fuga" code <<-EOH tar -zxvf /tmp/hoge.tgz /home/hoge/start.sh EOH end
このstart.shが動作しないんですな。
なぜだと悩むこと数日。長いな。
環境変数の違いでこのスクリプト中に書いてあるコマンドが動作しないことがわかりました。
具体的にはLD_LIBRARY_PATHですね。
cronもそうだけど、chefはrootからレシピで指定されているuserでsudoするので、当該ユーザの.bashrcとかそのあたりは反映されない。cronだとよくその現象で動作しないことがあります。