2017-01-27 12 views
0

にPyのスクリプトを実行すると、私は次のエラーを取得しながら、:「[ERRNO 13]パーミッション拒否エラー」、私はAnsibleの脚本を経由してPythonスクリプトを実行している場合はAnsible

fatal: [localhost]: FAILED! => {"changed": false, "cmd": "/Dest/To/Repo/HW.py", "failed": true, "msg": "[Errno 13] Permission denied", "rc": 13} 

私はsudo: yesを追加しましたライン:

ここでは私のYAMLファイルです:

- name: a play that runs entirely on the ansible host 
    hosts: 127.0.0.1 
    sudo: yes 
    connection: local 
    tasks: 
    - name: check out a git repository 
    git: repo={{ repo_url }} dest=/Dest/To/Repo/ accept_hostkey=yes 
    vars: 
     repo_url: https://github.com/lorin/mezzanine-example.git 

    - name: Running the Python Script 
    command: /Dest/To/Repo/HW.py 

HW.pyスクリプトがちょうどprint("Hello World")

です

権限エラーに関して何か必要なことはありますか?

+0

私はあなたのスクリプトで一つの可能​​な問題を見ることができます: 'HW.py'ファイルが実行権を持っていないかもしれません。次のコマンドを試してください: 'コマンド:/ usr/bin/python/Dest/To/Repo/HW.py' –

+0

@SebastianStigler Worked。それを答えとして書く:)。しかし、次のような警告が表示されます。 '' [DEPRECATION WARNING]:sudo/sudo_userの代わりにbecome/become_userを使用して、become_methodが 'sudo'(デフォルト)であることを確認してください。 この機能は、将来のリリースで削除されます。 deprecation_warnings = Falseをanacible.cfgに設定すると、非推奨警告を無効にすることができます。どのようにリモートEC2でそれを処理するのですか? – Dawny33

+0

[Ad-Hocコマンド](https://docs.ansible.com/ansible/intro_adhoc.html)とは関係のない質問については、「ansible-ad-hoc」タグの使用をやめてください。 – techraf

答えて

2

は、あなたはgitのモジュール呼び出しで実行権限を追加するためにumaskを使用する必要があります。

- name: a play that runs entirely on the ansible host 
    hosts: 127.0.0.1 
    sudo: yes 
    connection: local 
    tasks: 
    - name: check out a git repository 
    git: repo={{ repo_url }} dest=/Dest/To/Repo/ accept_hostkey=yes 
    umask: 0022 
    vars: 
     repo_url: https://github.com/lorin/mezzanine-example.git 
+0

あなたがAnabilities表記法を使うのか、純粋なYAMLを使うのかを決める必要があります。 YAMLを決定した場合は、構文を有効にするために適切な字下げを適用する必要があります。最後に、問題のリポジトリに 'HW.py'ファイルが含まれていないことを確認するのはかなり簡単です。そのため、解決策はうまくいかないでしょう。 – techraf

関連する問題