itamae のレシピが bash ではなく sh で実行されてしまう
itamae を使って新規 EC2 に ruby の環境を構築するレシピを作成中です
itamae のせいなのか ssm-user のデフォルトシェルが sh なせいなのかわからないのですが
execute リソースの際
Executing `sudo -H -u ssm-user -- /bin/sh -c cd\ \~ssm-user\ \;
というのが頭についてレシピに書いた内容がすべて /bin/sh で実行されてしまい
bashrc にかいた rbenv の設定が認識されずこまっています
レシピのコマンドに bash をつけて実行しても .bashrc は実行してくれないみたいで
毎回コマンド前に rbenv init を実行するしかないんでしょうか
きれいな解決方法があったら教えていただきたいです
追記:
具体的には itamae-plugin-recipe-rbenv
https://github.com/k0kubun/itamae-plugin-recipe-rbenv
というジェムを利用して
rbenv:
global:
2.5.1
versions:
- 2.1.2
- 2.5.1
scheme: https
rbenv-default-gems:
default-gems:
- bundler
install: true
という設定で rbenv を /usr/local/rbenv/bin にインストールしたのですが
.bashrc の rbenv init で /usr/local/rbenv/shims にパスが通るはずなのですが
レシピを実行するとそのパスにあるはずの bundle が見つからないと言われてしまいます
ssm-user の ssm 直後のPATHは /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
になっています
これが itamae 実行時の /bin/sh のときのパスになるかどうかもわかりません)
同じだとすると /usr/local/rbenv/bin や shims がはいってないので見つからないのは当たり前なのですが
どうやって /bin/sh 実行時に rbenv の内容を反映させるのがいいのでしょうか
コマンド全てに bashrc にかいてある
export RBENV_ROOT=/usr/local/rbenv; export PATH="${RBENV_ROOT}/bin:${PATH}"; eval "$(rbenv init -)"; コマンド
というようなことを行えばやりたいことはできそうですがレシピがすごく見づらくなってしまいます
何かいい方法はないでしょうか