この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
望月です。Ansibleの超小ネタです。
Ansibleの実行ユーザを変えたい
Ansible PlaybookでOSのセットアップをする際、基本的にはsudoでの実行やrootユーザで接続することが多いです。
ですが一部のセットアップはアプリケーションの実行ユーザで行いたい、ということがあると思います。例えばアプリケーション用のディレクトリ作成や依存ライブラリのインストールなどですね。
そういう時は以下の様に書いておけばOKです。
- hosts: all
- sudo: yes
- tasks:
- name: example executed by root privilege with sudo
shell: "echo 'this is root user'"
- name: example executed by general privilege
shell: "echo 'this is not root user'"
sudo: no
2行目のsudo: yesでこのplaybook全体に対してsudoが有効になります。その上で各タスク単位でsudo: noを記述することにより、Ansibleの接続ユーザ権限でコマンドが実行されるようになります。
上記の例では8行目の記述のおかげで2番目のタスクが一般ユーザ権限で実行されるようになります。
覚えておくと役に立つかもしれません。スニペットとしてご活用下さい。