Ansibleでタスクの実行ユーザを指定する。
タスク実行時にユーザを切り替えたかったので、調べてみた。
タスクの書き方
become_user
を使うことでタスクの実行ユーザの切り替えが可能。
- name: whoami become_user: "{{ user }}" shell: whoami register: command_output notify: "show previous command stdout"
コマンドラインからの実行ユーザの設定
タスク内で定義した become_user: "{{ user }}"
に値を渡したい場合は、—extra-vars
オプションを利用する。
$ ansible-playbook hogehoge.yml -i inventory/myhosts.yml -l kks --extra-vars '{"user": "ponteru"}' --start-at='whoami' --step
なお --extra-vars
に渡す値はJSON形式にしないとNG。
今回の場合はponteruユーザで whoami
を実行している。