2016-11-19 28 views
0

Я могу установить несколько модулей python на своих серверах приложений, используя ansible. Но когда я включаю модуль python-mysqldb, он выдает следующую ошибку.Ошибка модуля python-mysqldb с использованием ansible

[email protected]:~/ansible$ ansible-playbook playbooks/webserver.yml 

PLAY [webserver] *************************************************************** 

TASK [setup] ******************************************************************* 
ok: [app02] 
ok: [app01] 

TASK [install web components] ************************************************** 
failed: [app02] (item=[u'apache2', u'libapache2-mod-wsgi', u'python-pip', u'python-virtualenv', u'python-mysqldb']) => {"failed": true, "item": ["apache2", "libapache2-mod-wsgi", "python-pip", "python-virtualenv", "python-mysqldb"], "module_stderr": "Shared connection to app02 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n File \"/tmp/ansible_sYzNC_/ansible_module_apt.py\", line 909, in <module>\r\n main()\r\n File \"/tmp/ansible_sYzNC_/ansible_module_apt.py\", line 892, in main\r\n if updated_cache and not retvals['changed']:\r\nKeyError: 'changed'\r\n", "msg": "MODULE FAILURE"} 
failed: [app01] (item=[u'apache2', u'libapache2-mod-wsgi', u'python-pip', u'python-virtualenv', u'python-mysqldb']) => {"failed": true, "item": ["apache2", "libapache2-mod-wsgi", "python-pip", "python-virtualenv", "python-mysqldb"], "module_stderr": "Shared connection to app01 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n File \"/tmp/ansible_GKrHoN/ansible_module_apt.py\", line 909, in <module>\r\n main()\r\n File \"/tmp/ansible_GKrHoN/ansible_module_apt.py\", line 892, in main\r\n if updated_cache and not retvals['changed']:\r\nKeyError: 'changed'\r\n", "msg": "MODULE FAILURE"} 
    to retry, use: --limit @/home/vagrant/ansible/playbooks/webserver.retry 

PLAY RECAP ********************************************************************* 
app01      : ok=1 changed=0 unreachable=0 failed=1 
app02      : ok=1 changed=0 unreachable=0 failed=1 

анзибль сборник пьес:

--- 
- hosts: webserver 
    become: true 
    tasks: 
    - name: install web components 
     apt: name={{item}} state=present update_cache=yes 
     with_items: 
     - apache2 
     - libapache2-mod-wsgi 
     - python-pip 
     - python-virtualenv 
     - python-mysqldb 

Я пытаюсь установить несколько модулей на MySQL апача серверов приложений, но этот конкретный модуль блокирует меня двигаться вперед. На данный момент я не знаю. Было бы очень полезно, если кто-то может мне помочь.

Большое спасибо заранее.

+0

Можете ли вы установить его вручную? Без возможности? –

+0

Спасибо Quadri, но я не уверен, как установить без возможности. Любая ссылка, которую вы можете предложить? Я тоже думаю, что некоторая проблема с серверами приложений довольно очевидна. – harshavmb

+0

Я думаю, проблема в том, что остальная часть пакета, который вы устанавливаете, является debian-пакетом и устанавливается через 'apt-get', где« myql-python »- это пакет python, установленный через' pip'. Вы можете увидеть: http://stackoverflow.com/questions/25865270/how-to-install-python-mysqldb-module-using-pip как ссылку. Я не знаю о * Ansible *, но я уверен, что причиной проблемы является то, о чем я упомянул. –

ответ

1

После отладки серверов приложений я узнал основную причину.

Серверы приложений не смогли подключиться к удаленным репозиториям. Я выполнил команду ниже, чтобы отключить брандмауэр, поскольку я использую бранные ubuntu-боксы.

sudo ufw disable 

Это не может быть жизнеспособным вариантом для Ubuntu коробки внутри организации, поскольку они связаны с политикой брандмауэра.

Смежные вопросы