[Ansible]Task単位でsudo有無を切り替える
望月です。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番目のタスクが一般ユーザ権限で実行されるようになります。
覚えておくと役に立つかもしれません。スニペットとしてご活用下さい。