【问题标题】:Ansible requires PyMSQL but it's already installedAnsible 需要 PyMSQL 但它已经安装
【发布时间】:2021-11-11 08:46:49
【问题描述】:

我查找了类似的问题并在那里应用了修复,但它们没有帮助。我整天都在转圈,想寻求帮助。

Ansible 控制器是带有 ansible 2.9.25 的 Fedora 34。安装了最新 PyMySQL 的 Python 3.9.7。

受控节点是 Red Hat 8.4,同时安装了 python 3.9.2 和 PyMySQL。

当我尝试创建 MySQL 数据库时,我收到以下错误消息:

TASK [role_create_mysql_db : Create MySQL DB *********************************************
Thursday 16 September 2021  12:26:33 +0200 (0:00:04.633)       0:00:15.916 **** 
fatal: [dbserver.bla.domain.com]: FAILED! => {
    "changed": false
}

MSG:

The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required.

我检查了该模块对 root 和 ansible 远程用户都可用。 ansible代码如下:

- name: Create MySQL database
  mysql_db:
    name: somedbname
    encoding: utf8
    collation: utf8_bin
  become: true

没有比这更简单的了。

我尝试运行 ansible-playbook playbook.yml -e ansible_python_interpreter=/usr/bin/python,但也尝试运行 python3、3.9 和 3.9。 /usr/bin/python* 中安装的任何版本

它只是不想看到 PyMySQL 已实际安装。

有什么帮助吗?

提前致谢!

【问题讨论】:

    标签: python-3.x ansible mysql-python


    【解决方案1】:

    我不久前遇到过这个问题,但我真的不记得我是如何解决的。不过我可以和你分享我的代码,也许它会解决你的问题。 对于debian主机,我以前用过这个。

    - name: Upgrade pip to be able to install pymysql
      pip:
         name: pip
         extra_args: --upgrade
    
    - name: Install pip PyMySQL package
      pip:
         name: PyMySQL
    

    对于一个新的 centos7 主机,我使用了以下代码:

    - name: Upgrade all packages
      yum:
        name: "*"
        state: latest
    
    - name: Install epel-release
      yum:
        name: epel-release
        state: present
    
    - name: Install python-pip
      yum:
        name: python-pip
        state: latest
    
    - name: Install pexpect
      pip:
        name: pexpect
        state: latest
    

    我已经安装了这些依赖项,以便以后使用 mysql 模块用于我的数据库和集群操作。这是全新安装,所以我不知道安装 epel-release 是否会给您带来任何问题,或者它是否真的与 PyMySQL 问题有关。但是你可以尝试这些,直到你有一个直接的答案。

    【讨论】:

    • 在我的设置中,我遇到了类似的行为并使用了与您在此处描述的相同的方法。因此,这似乎是一个好主意。
    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 2016-10-02
    • 2021-06-11
    • 2020-09-15
    相关资源
    最近更新 更多