リモートのユーザのログインシェルをzshに変更後、sudoなしでAnsibleのshellモジュールを使って rbenvを実行したところ、以下のエラーが出た。
/bin/sh: rbenv: command not found
そもそもzshじゃなくて/bin/shが使われているのが気になる。ログインシェルの変更をしないでおくと 普通にprofile.d/*.shを読んでrbenvが実行できる。
ログインシェルを変更したまま、Ansibleのshellモジュールにprofile.dを読ませる方法として ansible.cfgに設定を追加することにした。以下の設定によりshellモジュールで常にbashをログインシェル として起動するようになる。
[defaults]
executable = /bin/bash -l