まとめ
- ターゲットノードでのユーザに sudo コマンドが実行できるようにしておくこと。
- CentOS 7.5 では、wheel グループに属させれば sudo コマンドが実行できるようになる。
- ansible 実行時に指定する playbook (site.yml) の remote_user にターゲットノードのどのユーザで実行するかを指定すること。
- become は true を指定すること。
- ansible 実行時に、–ask-become-pass オプションを付けること。
他にもあるかもしれませんけれども、私は以上のポイントで動くようになりました。
以下、ターゲットノードで playbook の内容を実行するユーザ名を、ansible として説明します。
ターゲットノードでのユーザに sudo コマンドが実行できるようにしておくこと。
CentOS 7.5 では、wheel グループに属させれば sudo コマンドが実行できるようになりますので、次のようにすれば OK でした。
gpasswd -a ansible wheel
参考
ansible 実行時に指定する playbook (site.yml) の remote_user にターゲットノードのどのユーザで実行するかを指定すること。
ダメ><
--- - name: Provision oki2a24.com WordPress server hosts: all become: true roles: - role: common ... 略 ...
次で大丈夫!
--- - name: Provision oki2a24.com WordPress server hosts: all remote_user: ansible become: true roles: - role: common ... 略 ...
ansible 実行時に、–ask-become-pass オプションを付けること。
なお、sudo パスワードは、root のパスワードではなく、sudo コマンドを実行したユーザのパスワードです。
ダメ><
ansible-playbook -i hosts site.yml
次で大丈夫!
ansible-playbook -i hosts site.yml --ask-become-pass
参考
おわりに
WordPress 用サーバを構築する Ansible プレイブックを書き、Vagrant 環境でリハーサルをいたしまして、OK!となり、いざ、本番!、NG><、、、という悲しい結果となりました。。。
そこで、今回ダメだったところをメモいたしました。
以上です。
「【Ansible】playbook 実行時に sudo パスワードを入力して実行する方法」への1件の返信
[…] playbook 実行時に sudo パスワードを入力して実行する方法 | oki2a24 […]