ansible playbook 上的错误:需要 python mysqldb 模块

Phi*_*gan 6 python mysql-python ansible ubuntu-16.04

我试图通过将 wordpress 实例从构建服务器部署到另一台主机服务器来自学 ansible。两台服务器都是 Ubuntu 16.04,一切正常,直到构建开始运行 mysql 任务 main.yml 文件,当我收到以下错误时:

“需要python mysqldb模块”

我在 server/tasks/main.yml 文件中包含了 python-mysqldb,所以不确定错误是什么。任何人都可以指出我正确的方向吗?

mysql/任务/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
Run Code Online (Sandbox Code Playgroud)

服务器/任务/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
Run Code Online (Sandbox Code Playgroud)

运行时控制台输出错误:ansible-playbook playbook.yml -i hosts -u jblogs -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"}
Run Code Online (Sandbox Code Playgroud)

Arb*_*zar 5

您可以按要求安装它:

- name: Install required software
  apt: name={{ item }} state=present
  sudo: yes
  with_items:
    - apache2
    - build-essential
    - python-dev
    - libmysqlclient-dev
    - 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
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么您可以这样做:

- name: Install required software
  apt: name={{ item }} state=present
  sudo: yes
  with_items:
    - apache2
    - build-essential
    - python-dev
    - libmysqlclient-dev
    - python-pip
    - 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

- name: Install the MySQL-python through pip
  sudo: yes
  pip:
    name: "{{ item }}"
    state: forcereinstall
  with_items:
    - pip
    - MySQL-python
Run Code Online (Sandbox Code Playgroud)


Sah*_*ati 3

我遇到了同样的错误问题

{“changed”:false,“failed”:true,“msg”:“需要 python mysqldb 模块”}

运行这个剧本解决了我的问题。在流浪盒上测试ubuntu/precise64

---
- hosts: vagrant1
  gather_facts: no
  tasks:
  - name: "updating server"
    apt:
      update_cache: yes
  - name: "Installing apt dependencies"
    apt:
     name: "{{item}}"
    with_items:
      - python-pip
      - python-dev 
      - libmysqlclient-dev

  - name: "Installing pip dependencies"
    pip:
      name: MySQL-python
      extra_args: --index=https://pypi.python.org/pypi/
      version: 1.2.3

  - name: "Installing  mysql server"
    apt:
      name: mysql-server

  - name: "Creating mysql user"
    mysql_user:
      name: root #your mysql username
      password: root #your mysql password
      priv: '*.*:ALL'
      state: present
...
Run Code Online (Sandbox Code Playgroud)

或者

步骤1: apt-get install mysql-server python-pip python-dev libmysqlclient-dev

第2步:pip install --index=https://pypi.python.org/pypi/ MySQL-python==1.2.3