Ansible - 找不到 pip

Edu*_*rdo 5 ansible ansible-2.x

我收到此错误:

    TASK [pip] *********************************************************************
    failed: [default] (item=urllib3) => 
{"changed": false, "item": "urllib3", 
"msg": "Unable to find any of pip2, pip to use.  pip needs to be installed."}
Run Code Online (Sandbox Code Playgroud)

根据建议,我运行以下命令:

ansible default -a "which pip"
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

default | FAILED | rc=1 >>
non-zero return code
Run Code Online (Sandbox Code Playgroud)

所以我想这意味着没有安装 pip。我尝试使用以下方法安装 pip:

ansible default -a "easy_install pip"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

default | FAILED | rc=2 >>
[Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新 在 play_local.yaml 中,我有以下任务:

- name: Prepare system
  hosts: default
  become: yes
  gather_facts: false
  pre_tasks:
    - raw: sudo apt-get -y install python python-setuptools python-pip build-essential libssl-dev libffi-dev python-dev easyinstall pip
    - file: path=/etc/sudoers.d/ssh-auth-sock state=touch mode=0440
      #- lineinfile: line='Defaults env_keep += "SSH_AUTH_SOCK"' path=/etc/sudoers.d/ssh-auth-sock
    - replace:
        path: /etc/apt/sources.list
        regexp: 'br.'
        replace: ''
Run Code Online (Sandbox Code Playgroud)

这个任务不应该安装pip吗?

ipt*_*zer 6

好像没有安装pip,可以使用下面的任务来安装:

- name: Install pip
  apt:
    name: python-pip
    update_cache: yes
    state: present
Run Code Online (Sandbox Code Playgroud)


sul*_*edi 2

可能 pip 已被散列。这意味着 pip 安装在路径 x (可能是/usr/local/bin/pip),但是缓存在路径 y (可能是 )/usr/bin/pip)。您可以从 - 确认这一点ansible default -m shell -a \xe2\x80\x98type pip\xe2\x80\x99。要解决此问题,您\xe2\x80\x99 需要运行 - ansible default -m shell -a \xe2\x80\x98hash -r\xe2\x80\x99

\n\n

顺便说一句,您还可以使用命令模块代替 shell。

\n