我的ansible代码如下所示:
---
- name: Install python
apt:
pkg: "{{ item }}"
update-cache: yes
state: latest
with_items:
- python
- python-dev
- name: Install pymysql
pip:
name: "{{ item }}"
executable: pip
state: present
with_items:
- PyMySQL==0.7.11
- MySQL-python
- name: Install mysql and deps
apt:
pkg: "{{ item }}"
update-cache: yes
state: latest
with_items:
- mysql-server
- libmysqlclient-dev
- python-mysqldb
- python-pip
- name: Create DB
mysql_db:
name: "{{ item }}"
collation: utf8_general_ci
encoding: utf8
with_items: "{{ database_names }}"当我运行它时,我会得到错误,
失败:xxxxx => {"ansible_loop_var":“ansible_loop_var”、"changed":false、"item":"xxxxx“、"msg":”PyMySQL (Python2.7和Python3.x)或MySQL(Python2.x)模块“}。
但是从我明智的代码中可以看出,在调用PyMySQL之前,我同时安装了mysql_db和MySQL。此外,从ansible运行时日志中,我看到PyMySQL和MySQL-python都已成功安装:
TASK [mysql : Install python] **************************************************
ok: [aquila] => (item=python)
ok: [aquila] => (item=python-dev)
TASK [mysql : Install pymysql] *************************************************
ok: [aquila] => (item=PyMySQL==0.7.11)
ok: [aquila] => (item=MySQL-python)
TASK [mysql : Install mysql and deps] ******************************************
ok: [aquila] => (item=mysql-server)
ok: [aquila] => (item=libmysqlclient-dev)
ok: [aquila] => (item=python-mysqldb)
ok: [aquila] => (item=python-pip)
TASK [mysql : Create DB] ************************************************
failed: [xxxxx] (item=xxxxx) => {"ansible_loop_var": "item", "changed": false, "item": "aquila", "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."}为什么mysql-db没有得到PyMySQL或MySQL模块?
发布于 2022-04-19 20:55:59
我在CentOS 7上也有相同的错误,但是在Ubuntu20.04上,这个错误适用于我:
- name: Install pip
apt:
name: python3-pip
state: present
- name: Install PyMySQL
pip:
name: pymysql
state: presentUPD:下面是CentOS 7的一个解决方案:
- name: Install MySQL-python
yum:
name:
- python3-pip
- MySQL-pythonhttps://stackoverflow.com/questions/71777715
复制相似问题