当我尝试通过ansible运行pip命令时,我错误地登陆了。
{“已更改”:false,“ msg”:“找不到要使用的任何pip。需要安装pip。”}
在我的机器上调试时,我发现pip已安装最新版本。我意识到我的文件使用sudo来运行pip。
所以,如果我这样做which pip
我得到了点子的路径,但是如果我做sudo which pip
,我什么也没得到。
我不知道如何更改文件,因此需要sup而不是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
我不知道如何解决此问题
答案 0 :(得分:0)
在远程主机上,找出远程用户使用哪个点。使用此可执行文件并成为该远程用户。例如
- name: Install opencv-python
become_user: admin
become: true
pip:
name: opencv-python
state: forcereinstall
executable: /home/admin/.local/bin/pip
请参见Becoming an Unprivileged User。管道应该解决成为无特权用户的问题。
$ grep pipe ansible.cfg
pipelining = true
注释
通过pip安装的所有内容仅对特定的远程用户可用。
最好使用发行版软件包。例如
$ apt-cache search python-opencv
python-opencv - Python bindings for the computer vision library
python-opencv-apps - opencv_apps Robot OS package - Python 2 bindings