Ansible 1.4からgem
モジュールにexecutable
オプションが追加されて、gem
のパスを指定できるようになっています。
しかしrbenv
を使ってインストールしたgem
のパスを指定するだけだと、playbook実行時にはインストールされたかのように見えるけれども、インストールしたものをコマンドラインで実行しようとしたらパスが通ってないという事態に遭遇しました。
実はgem
モジュールはデフォルトだとuser_install
オプションがTrue
になっていたために、gem install
時に--user-intall
オプションが追加されて、~/.rbenv/
以下ではなく~/.gem/
以下にインストールされていたというオチでした。
user_install
をFalse
に設定したら~/.rbenv/
以下にインストールされるようになりました。
site.yml
- name: gem install bundler
gem: name=bundler executable=.rbenv/shims/gem user_install=False