2017-10-10 12 views
0

私は簡単なアノッズプレイを作成しようとしています。以下のスニペットをご覧ください。 2.4.2.0、Ubuntu 17.04、Python 2.7.13を使用しています。 これは初めてAnsible and Playbooksを使用しているので、あまり厳しくしないでください。私は間違って何をしていますか?Anabilitiesを使用してパッケージをインストールしようとしたときに権限拒否エラーを修正するにはどうすればよいですか?

playbook.yml

--- 
- name: install packages 
    hosts: dbservers 
    become: yes 
    become_method: sudo 
    become_user: user 

    tasks: 
    - name: Update repositories cache and install "python-minimal" package 
    apt: 
    name: python-minimal 
    update_cache: yes 

hostsファイル

--- 
[dbservers] 
db ansible_host=127.0.0.1 ansible_port=22 ansible_user=user ansible_ssh_pass=pass ansible_become_pass=pass ansible_become_user=user 

コマンド:エラー、次の戻り上記ansible-playbook -i hosts playbook.yml -vvv

コマンド:

The full traceback is: 
    File "/tmp/ansible_yozgsn/ansible_module_apt.py", line 287, in <module> 
    import apt 

fatal: [db]: FAILED! => { 
    "changed": false, 
    "cmd": "apt-get update", 
    "failed": true, 
    "invocation": { 
     "module_args": { 
      "allow_unauthenticated": false, 
      "autoclean": false, 
      "autoremove": false, 
      "cache_valid_time": 0, 
      "deb": null, 
      "default_release": null, 
      "dpkg_options": "force-confdef,force-confold", 
      "force": false, 
      "force_apt_get": false, 
      "install_recommends": null, 
      "name": "python-minimal", 
      "only_upgrade": false, 
      "package": [ 
       "python-minimal" 
      ], 
      "purge": false, 
      "state": "present", 
      "update_cache": true, 
      "upgrade": null 
     } 
    }, 
    "msg": "W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)\nE: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)\nE: Unable to lock directory /var/lib/apt/lists/\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)\nW: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)", 
    "rc": 100, 
    "stderr": "W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)\nE: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)\nE: Unable to lock directory /var/lib/apt/lists/\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)\nW: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)\n", 
    "stderr_lines": [ 
     "W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)", 
     "E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)", 
     "E: Unable to lock directory /var/lib/apt/lists/", 
     "W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)", 
     "W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)" 
    ], 
    "stdout": "Reading package lists...\n", 
    "stdout_lines": [ 
     "Reading package lists..." 
    ] 
} 

編集:もし私のconne ctを使って同じマシンにSSHをインストールする私はapt-cacheを手動でアップデートして、同じユーザ(sudoを使って)を使ってパッケージをインストールすることができます。 Playbookの中でコマンド 'whoami'を実行すると、期待される結果(ユーザ名)が返されます。私はあなたがbecome_userremote_user混乱していると思う

tasks: 
    - name: Update repositories cache and install "python-minimal" package 
    become: yes 
    apt: 
     name: python-minimal 
     update_cache: yes 

答えて

0

become:を使用しています。 remote_userは、Anabilitiesがサーバーにsshに使用するユーザーで、become_userがユーザーです。Ansibleは、サーバー上で作業中にタスクに切り替えて実行します。 become_userremote_userについては、Ansible's docsの詳細をご覧ください。

ここで何が起こっているのは、あなたのプレイブックが「ユーザー」ユーザーになり、パッケージをインストールしようとしていることです。あなたが必要とするパッケージをrootとしてインストールしているわけではありません。これを修正するには、become_userパラメータをプレイブックから削除するか(become_userのデフォルトはroot)、またはbecome_userパラメータをタスクに追加することができます。

- name: Update repositories cache and install "python-minimal" package 
    apt: 
    name: python-minimal 
    update_cache: yes 
    become_user: root 
+0

私が使用する場合: - 構文エラーが発生します。私もプレイブックとホスト(CLIで使用)の両方からすべての変数を削除しようとしましたが、それは助けにはなりませんでした。 – metalcamp

+0

あなたのユーザーはsudoのprivsを持っていますか?あなたはログインして、これを手動で成功させることができますか? –

+0

はい、手動で問題なく実行できます。 – metalcamp

0

- ユーザーがsudoにアクセスを持っている場合

+0

rootユーザーにアクセスできません。私はsudoersユーザーアカウントを持っています。これは私の問題の根源ですか? (意図した馬鹿):) – metalcamp

+1

'sudo -l'なら、どのコマンドに実行権限がありますか?私たちがansible.cfgを調整する必要がないことを願っています。 –

+0

あなたはrootとしてパッケージをインストールする必要があります。あなたはすでにこれを行うためのアクセス権を持っているかもしれません - 私はsudoersユーザーアカウントの意味をよく分かりません。あなたができるかどうかを 'sudo -l'が教えてくれます。 – kfreezy

関連する問題

 関連する問題