2017-01-24 4 views
1

私はセットアップしようとしているつまり、登録したファイルがansibleAnonymousはlocalhost USERを間違って取得しますか?

- name: check CRAN R script exists 
    stat: 
    path: "{{ playbook_dir }}/scripts/R/cran.R" 
    delegate_to: localhost 
    register: cran 

    tags: r_extras 

でタスクを実行する前に存在している場合、私は脚本を実行したときにsudo

- name: installing common apt dependencies, pip python packages as well as java 
    hosts: base 
    remote_user: "{{ sudo_guy }}" 
    roles: 
      # need to have non previlidged installer guy 
      - make_sw_guy 
      # apt-get installation 
      - common 

    become: true 

として実行され、このタスクは脚本の一部ですチェックこの

ansible-playbook -vvvv -i my_hosts all.yml --tags r_extras 

のように私はこのエラーを取得する

fatal: [bio_training -> localhost]: FAILED! => { 
    "changed": false, 
    "failed": true, 
    "invocation": { 
     "module_name": "stat" 
    }, 
    "module_stderr": "sudo: a password is required\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE" 
} 

私はrootだと思っていますので、私にはちょっとばかげているようですが、その点を逃しているかもしれませんか?

ローカルファイルが存在することを確認するにはどうすればよいですか? AND/ORどのように..


私はbecome_user: $USERを追加することで、この問題を「解決」することができますが、私はこの一般的な作り方を知らないために設定

答えて

1

becomeディレクティブをローカルホストの$USER変数を取得しますロールは、delegate_toのロールを含むすべてのタスクに有効です。

sudoコマンドをローカルで実行し、パスワードを/etc/sudoersに設定する必要があります。

Anipalがここで行い、あなたがrootだと思っているのは何も愚かではありませんが、実際には自分がrootだと思ったらパスワードを要求しません。

become: falseをタスクに追加できます。

+0

ありがとう、私はまだ完全に取得していないと思います - あなたが 'sudo 'という接頭辞付きのものをすべて実行することを忘れてしまいました。あなたが' sudo'を指定したのでlocal_actionsに少し不向きです。 – serine

+0

あなたの質問に 'local_action'タスクが見つかりません。上記のコメントの句を最初に使用しました。 – techraf

+0

私は 'delegate_to:localhost'と' local_action'は同じものだと信じています。そうではありませんか? – serine

関連する問題