使用pip命令时出现ansible抛出错误
当我试图通过ansible运行pip命令时,我出错了 {“changed”:false,“msg”:“找不到任何要使用的pip。需要安装pip。”} 当我在我的机器上调试时,我发现pip是以最新版本安装的。我意识到我的文件使用sudo来运行pip 那么如果我做了使用pip命令时出现ansible抛出错误,ansible,Ansible,当我试图通过ansible运行pip命令时,我出错了 {“changed”:false,“msg”:“找不到任何要使用的pip。需要安装pip。”} 当我在我的机器上调试时,我发现pip是以最新版本安装的。我意识到我的文件使用sudo来运行pip 那么如果我做了哪一个pip 我得到了pip的路径,但是如果我做了sudo哪个pip我什么也得不到 我不知道如何更改我的文件,所以不用sudo - name: "Allow newuser for new super user without SUDO
哪一个pip
我得到了pip的路径,但是如果我做了sudo哪个pip
我什么也得不到
我不知道如何更改我的文件,所以不用sudo
- name: "Allow newuser for new super user without SUDO password for using rsync:"
lineinfile:
path: /etc/sudoers
state: present
insertafter: '^%sudo'
line: "{{ user }} ALL=(ALL:ALL) NOPASSWD: /usr/bin/rsync"
- pip:
name: opencv-python
state: forcereinstall
executable: pip
我不知道如何在远程主机上解决此问题,请找出远程用户使用的是哪个pip。使用此可执行文件并成为此远程用户。比如说
- name: Install opencv-python
become_user: admin
become: true
pip:
name: opencv-python
state: forcereinstall
executable: /home/admin/.local/bin/pip
看。管道应该解决成为一个没有特权的用户的问题
$ grep pipe ansible.cfg
pipelining = true
注释
- 无论您通过pip以这种方式安装什么,都将只对这个特定的远程用户可用
- 最好使用发行版软件包。比如说
- name: Install opencv-python
become_user: admin
become: true
pip:
name: opencv-python
state: forcereinstall
executable: /home/admin/.local/bin/pip
- 请参阅,特别是
哪个pip
返回的?听起来像是在非特权用户路径中安装了它,但不是一个全局位置,pip返回home/newuser/.local/bin/pip如果我这样做了,我将收到此错误。致命:[Atry]:失败!=>{“changed”:false,“msg”:“不支持(pip)模块的参数:Been,Been_用户支持的参数包括:chdir、editable、executable、extra_参数、名称、要求、状态、umask、use_镜像、版本、virtualenv、virtualenv_命令、virtualenv_python、virtualenv_站点_包”}当我们说admin是sudo还是local users时,当我尝试使用local user而不是admin时,我开始获得权限错误,我尝试使用matolib失败!=>{“changed”:false,“cmd”:[“/home/newuserr/.local/bin/pip”,“install”,“-U”,“--force-reinstall”,“matplotlib”],“msg”:“stdout:使用缓存的pyparsing收集matplotlib\n setmatplotlib\n错误:EnvironmentError:[Errno 13]权限被拒绝:'/usr/lib/python3/n-35.pyc'\n请考虑使用--user
选项或检查权限。\n\n“}