【Ansible】playbook 実行時に sudo パスワードを入力して実行する方法

スポンサードリンク


まとめ

  • ターゲットノードでのユーザに 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><、、、という悲しい結果となりました。。。

そこで、今回ダメだったところをメモいたしました。

以上です。

コメントを残す