私はリモートスクリプトを使用してリモートのディレクトリを作成しています。これは、becomeとbecome_userの両方を使用すると失敗するようです。私はボックスにログインするために特権ユーザーを使用していることに注意してください。他のコマンドは(become_userなしで)うまく動作するようです。権限のないユーザへのable_userが失敗しました
fatal: [node0]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "file"}, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}
ansibleドキュメントに記載されているように、私はまた、パイプライン化を可能にするために試してみた:パスワードセットはdeploy ALL=NOPASSWD: ALL
# This works
- name: create log directory
file: path={{ log_directory }} state=directory owner=metax group=metax mode=0755
become: yes
# This fails
- name: create log directory
file: path={{ log_directory }} state=directory owner=metax group=metax mode=0755
become: yes
become_user: deploy
がエラーで失敗するユーザーのいずれにもありません https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user
ターゲットシステムに 'acl'パッケージをインストールしてください。 –
Ansibleと 'root 'で接続しているのであれば意味をなさないようです。 ' - コマンド:whoami' ' register:whoami' 'になる:yes' ' become_user:deploy' ' - {debug:msg}" ''? 'become_user'の有無にかかわらず?また、あなたが '' root ''の場合、なぜ ''になりますか? become_userなし '' OK:[ノード0] => { "ルート" "MSG"} – techraf
は 'become_user'としまったメッセージと同じエラーで失敗しました。私が基本的に実際の "root"ユーザを使用しているのではなく、sudo権限を持つユーザを使用しているので、 'become'を使うことは面白いです。だから、私は '有り 'を使うのが便利だろうと思うのです。 ' OK:[ノード0] => { "MSG": "ankitjain" }注目 ' – Ankit