私はすべての要件がローカルにインストールされていることを確認するプレイブックを持っています。なぜsudoユーザーとしてPipを実行しないのですか?
---
- hosts: localhost
become: yes
become_user: "{{ sudo_user }}"
connection: local
vars_files:
- vars/main.yml
roles:
- do
sudo_user
はVARSでsurfer190
です:私はansible 2.0.0
ansible-playbook site.yml -i staging
site.ymlを使用しています。
は/タスク/ main.ymlの操作を行います。
- name: make sure everything is installed
apt: name={{item}} state=installed
with_items:
- python-apt
- python-pycurl
- python-pip
- python-setuptools
- name: Install dopy
pip: name={{ item }}
with_items:
- virtualenv
- dopy
- passlib
私は次のエラーを取得:基本的にpermission denied
ある
failed: [localhost] => (item=passlib) => {"cmd": "/usr/local/bin/pip install passlib", "failed": true, "invocation": {"module_args": {"name": "passlib"}, "module_name": "pip"}, "item": "passlib", "msg": "stdout: Collecting passlib\n Using cached passlib-1.6.5-py2.py3-none-any.whl\nInstalling collected packages: passlib\n\n:stderr: Exception:\nTraceback (most recent call last):\n File \"/usr/local/lib/python2.7/dist-packages/pip/basecommand.py\", line 211, in main\n status = self.run(options, args)\n File \"/usr/local/lib/python2.7/dist-packages/pip/commands/install.py\", line 311, in run\n root=options.root_path,\n File \"/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py\", line 646, in install\n **kwargs\n File \"/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py\", line 803, in install\n self.move_wheel_files(self.source_dir, root=root)\n File \"/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py\", line 998, in move_wheel_files\n isolated=self.isolated,\n File \"/usr/local/lib/python2.7/dist-packages/pip/wheel.py\", line 339, in move_wheel_files\n clobber(source, lib_dir, True)\n File \"/usr/local/lib/python2.7/dist-packages/pip/wheel.py\", line 310, in clobber\n ensure_dir(destdir)\n File \"/usr/local/lib/python2.7/dist-packages/pip/utils/__init__.py\", line 71, in ensure_dir\n os.makedirs(path)\n File \"/usr/lib/python2.7/os.py\", line 157, in makedirs\n mkdir(name, mode)\nOSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/passlib'\n"}
を。したがって、sudoでコマンドを実行していません。私はsudo pip install passlib
を試してみるとうまくいきます。
-k
で実行してもsudoのパスワードを入力しても動作しません。 surfer190
ユーザーがsudoにはパスワードを要求することに注意してください。
私は間違っていますか?ぼーっとしたタスクをインストールする
- name: make sure everything is installed
apt: name={{item}} state=installed
with_items:
- python-apt
- python-pycurl
- python-pip
- python-setuptools
- name: Install dopy
pip: name={{ item }}
with_items:
- virtualenv
- dopy
- passlib
sudo: yes
タスクを実行しながら、脚本の実行がハングすることに気付いた場合、それはにsudo passowordためansible待機する可能性がありますがありませんがあります:
は? '/ usr/local'は必ずしもroot所有ではありません。 – cel
私にとっては、 'GNU/Linux'を実行しています。' Ubuntu 14.04' – surfer190
@ surfer190 'become_method'を試しましたか? – frank