web-dev-qa-db-ja.com

ansibleでpostgresql_dbモジュールを使用できません

ターゲットサーバー:

-bash-4.2$ python -V
Python 2.7.5
-bash-4.2$ pip list | grep psycopg2
psycopg2 (2.8.3)

ただし、このタスクでansibleプレイブックを実行すると失敗します。

- name: Create repmgr database
  postgresql_db:
    name: repmgr
  become: true
  become_user: postgres

エラー:

TASK [db : Create repmgr database] ***************************************************************************
fatal: [192.168.0.1]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (psycopg2) on db's Python /usr/bin/python. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}

インポートできないのはなぜですかpsycopg2

2
rawmain

python autodiscovery または特定のホストの固定ansible_python_interpreterが他のバージョンのpython( libのインストールに使用)。

この場合は、次のいずれかを実行できます。

  1. ライブラリをインストールしたバージョンにバージョンを修正します(ホストにansible_python_interpreterを設定)
  2. ライブラリを他のバージョンでインストールします(例:pip3 install psycopg2

一方、(正しいpythonバージョンで)要件が常にカバーされていることを確認する最良の解決策は、実際にpostgresモジュールを使用する直前に、インストールをプレイブックに追加することです。

- name: Make sure psycopg2 is installed
  pip:
    name: psycopg2
    state: present
1
Zeitounator