You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible Playbook部署Docker报错:无法卸载requests 2.25.1

在EC2 t2.micro上运行Ansible Playbook部署Docker环境时遇到pip模块安装错误

我尝试在EC2 t2.micro实例上运行Ansible Playbook,完成Docker、Docker-Compose的安装并启动Compose容器。由于要使用Ansible的Docker模块,需要在EC2实例上安装docker和docker-compose的Python模块。

以下是我的Playbook代码:

#play1
- name: Update yum repo, install docker, pip, docker-compose & pip and python modules
  hosts: all
  become: true
  tasks:
    - name: update yum repo and cache
      yum: 
        name: '*'
        state: latest
        update_cache: true 
    - name: install docker and pip
      yum: 
        name:
          - docker
          - pip
    - name: download and install docker-compose 
      get_url:
        url: https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-{{lookup('pipe','uname -m')}}
        dest: /usr/local/bin/docker-compose
        mode: +x
    - name: start docker daemon
      systemd:  
        name: docker
        state: started
    ########################################################### 问题出在这里      
    - name: Install docker and docker-compose python module
      pip:
        name: 
          - docker
          - docker-compose
    ############################################################  
#play2
- name: Reset connection #and test hello-world
  hosts: all
  become: true
  tasks:    
    - name:  add ec2-user to docker group
      user: 
        name: ec2-user
        groups: docker
        append: yes    
    - name: reconnect to server session
      meta: reset_connection  
#play3
- name: start docker containers
  hosts: all
  vars_files:
    - docker-vars.yml
  tasks:
    - name: copy docker-compose file
      copy: # copy files from controller to remote node
        src: /home/ansible-project/docker-compose.yaml
        dest: /home/ec2-user/docker-compose.yaml
    - name: login to docker private repo
      docker_login:
        registry_url: https://index.docker.io/v1
        username: "{{user_name}}" 
        password: "{{docker_passwd}}"  
    - name: execute docker-compose and start container
      docker_compose: 
        project_src: /home/ec2-user
        state: present # equivalent of docker-compose up

我的主机文件仅配置了单个组和1台服务器IP,包含ansible_user和SSH私钥用于登录。docker-vars.yaml仅存储我的Docker用户名和密码。

我需要一键完成整个部署流程。已尝试在ansible.cfg中指定interpreter_python=/usr/bin/python3,也使用过默认的/usr/bin/python3.9,但Playbook执行时出现错误:

Found existing installation: requests 2.25.1
:stderr: ERROR: Cannot uninstall requests 2.25.1 Hint: The package was installed by rpm.

但手动登录EC2执行pip install docker和pip install docker-compose时,模块可成功安装。


内容的提问来源于stack exchange,提问作者Keshav Singh N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:43:37