うさぎ好きエンジニアの備忘録

うさぎたちに日々癒されているエンジニアが業務で直面したもの & 個人的な学習メモを残していきます。

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 を実行している。