VagrantのAnsible Local Provisionerの実行ユーザー

開発環境は、Vagrantで構築することが多くなりました。
Vagrantでは、Ansible Local Provisionerという機能があり、VMへのAnsibleのインストールやPlaybookに従って構成管理出来ます。
そう、Ansibleの実行時にハマりました。

要点だけ書くと、remote_userで実行ユーザーを指定しても、そのユーザーで実行されないのです。
例えば、以下のようなplaybookだと、systemdモジュールのところでエラーになります。(Boxはcentos/7



remote_userでrootを指定しているので成功するように思ってたんですが、これじゃダメでした。
これだ!っていう情報が見つからなかったですが、何を指定しようとvagrantユーザーで実行されます。
そのため、

  • sudoで実行する必要がある箇所にのみ、become: trueをつける
  • トップレベルでbecome: trueにし、sudoで実行する必要がないところだけbecome: falseにする

あたりが、落としどころこかなぁと思いつつ。

コメント

このブログの人気の投稿

ElasticIPを複数利用する時の注意

タスクの実行結果をwhenで指定するならcheck_modeつける

EC2にNameをつける