以下のサイトさんが詳しい。
www.bunkei-programmer.net
要は、ansible経由の場合は、/bin/shシェルが使用され
.bash_profileや.bashrcを読み込む、/bin/bashシェルが使用されないため
発生する現象ということっぽい。
引用すると
1)bashコマンドを「-l」オプション付きで実行する方法
- name: install ruby shell: bash -lc "rbenv install {{ ruby_version }}"
2)ansible.cfgにexecutableを追加する方法
[defaults] executable = /bin/bash -l
追記すると、もう一個やり方があって、
以下のようも書けるっぽい。
- name: install ruby shell: sudo -i rbenv install {{ ruby_version }}
ユーザを指定するなら以下
例)rootを指定
- name: install ruby shell: sudo -iu root rbenv install {{ ruby_version }}
[参考]
ruby - Install Bundler gem using Ansible - Stack Overflow