Fehler auf ansible playbook: python-mysqldb-Modul erforderlich ist
Ich versuche, mir beibringen, ansible durch die Bereitstellung einer wordpress-Instanz von einem server auf einen anderen host-server. Beide Server sind Ubuntu 16.04 und alles funktioniert gut, bis das bauen bekommt der Ausführung des mysql-Aufgaben main.yml-Datei, wenn ich die folgende Fehlermeldung:
"die python-mysqldb-Modul erforderlich ist"
Ich habe python-mysqldb in meinem server/tasks/main.yml-Datei, so dass nicht sicher, was der Fehler ist. Kann jemand mich in die richtige Richtung bitte?
mysql/tasks/main.yml
---
# tasks file for mysql
- name: Create mysql database
mysql_db: name={{ wp_mysql_db }} state=present
- name: Create mysql user
mysql_user:
name={{ wp_mysql_user }}
password={{ wp_mysql_password }}
priv=*.*:ALL
server/tasks/main.yml
---
# tasks file for server
- name: Update apt cache
apt: update_cache=yes cache_valid_time=3600
sudo: yes
- name: Install required software
apt: name={{ item }} state=present
sudo: yes
with_items:
- apache2
- python-mysqldb
- mysql-server
- mysql-client
- php7.0
- php7.0-mysql
- libapache2-mod-php7.0
- php7.0-cli
- php7.0-cgi
- php7.0-gd
- php7.0-mcrypt
Ausgabe in der Konsole Fehler aus läuft: ansible-playbook-playbook.yml -ich-hosts -u jbloggs -K
TASK [mysql : Create mysql database] *******************************************
task path: /etc/ansible/roles/mysql/tasks/main.yml:3
fatal: [wordpress1]: FAILED! => {"changed": false, "failed": true, "msg": "the python mysqldb module is required"}
- Das playbook funktioniert ok auf Vagrant ' s
bento/ubuntu-16.04
Feldpython-mysqldb
von APT ist richtig erkannt von Ansible, also dein problem muss woanders sein. Was Python verwenden Sie auf Ihrem Ubuntu 16.04? Es muss nicht Python 2 standardmäßig, richtig? So haben Sie Hinzugefügt? Oder versuchen Sie die Verwendung von Python 3?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dieses als pro-req:
Wenn das nicht funktioniert, dann können Sie dies so tun:
Ich hatte das gleiche Problem mit Fehler
Läuft das playbook mein Problem behoben. Getestet auf vagrant box
ubuntu/precise64
ODER
Schritt 1:
apt-get install mysql-server python-pip python-dev libmysqlclient-dev
Schritt 2:
pip install --index=https://pypi.python.org/pypi/MySQL-python==1.2.3
Gut, lassen Sie uns darüber nachdenken, warum dies geschieht.
Ubuntu 16.04 standardmäßig mit Python 3.5.1 installiert die Python ist3 binäre. Python 2 ist noch installierbar aber nicht der Standard.
Wenn wir mit ubuntu 16.04 mit ansible in der Regel haben wir einige defekte ändert, weil die meisten von ansible-Module erstellt werden, die von Python 2 und dieser Fehler wird verursacht durch Probleme mit python so der einfache Weg, um es zu beheben ist die Installation von python 2 laufen, bevor ansible, lassen Sie erfüllt, zeigen zwei Möglichkeiten, das zu tun.
1 - Einfach zu installieren, python 2, und führen Sie dann ansible
sudo apt-get install -y python
2 - Wenn Sie mit vagrant, zum Beispiel, fügen Sie shell-Skript-Datei vor dem ausführen ansible als vm-Bereitstellung, wie diese:
In vagrantfile fügen Sie diese Zeile vor ansible nennen
config.vm.provision "shell", path: "provision.sh"
Erstellen provision.sh mit diesem einfachen installieren von python:
ausführen vagrant normal und alles sollte gut funktionieren
Ich hoffe, ich kann Ihnen helfen, alle
In meinem Fall funktioniert.