【发布时间】:2020-09-28 09:15:36
【问题描述】:
我想用 ansible 安装 influxdb 和配置。 文件复制和influxdb配置没问题 但是创建数据库和用户创建部分会出现“ansible_python_interpreter”错误。
我搜索了这个错误并尝试了一些方法,但我自己无法解决这个问题
这是我的 ansible hosts 文件
[loadbalancer]
lb ansible_host=192.168.255.134
[loadbalancer:vars]
ansible_python_interpreter="/usr/bin/python3"
#ansible_python_interpreter="/usr/bin/env python"
#ansible_python_interpreter="/usr/libexec/platform-python"
这是我的 yaml 文件
# influxdb install and configuration
---
- hosts: lb
become: true
tasks:
- name: Copy Repo Files
copy:
src: ./files/influxdb.j2
dest: /etc/yum.repos.d/influxdb.repo
remote_src: no
- name: Install Influxdb
yum:
name: influxdb
state: latest
notify:
influxdb_ok
- name: Crete Database
community.general.influxdb_database:
hostname: 192.168.255.134
database_name: deneme
- name: Create User
community.general.influxdb_user:
user_name: deneme_user
user_password: deneme123
handlers:
- name: Start Influx Service
service:
name: influxdb
state: started
enabled: yes
listen: influxdb_ok
我尝试安装 python3 远程 vm(lb)。 我试图更改解释器参数。 我试图用 pip3 安装 requests 模块。
[root@centos8 influx]# ansible-playbook influxdb.yaml -K
BECOME password:
PLAY [lb] ***********************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************
ok: [lb]
TASK [Copy Repo Files] **********************************************************************************************
ok: [lb]
TASK [Install Influxdb] *********************************************************************************************
ok: [lb]
TASK [Crete Database] ***********************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ModuleNotFoundError: No module named 'requests'
fatal: [lb]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (requests) on loadbalancer.servicepark.local's Python /usr/bin/python3. Please read the module documentation and install it 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"}
PLAY RECAP **********************************************************************************************************
lb : ok=3 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
我尝试安装 requests 模块和当前的 ansible 版本
现在我的 ansible 机器版本
[root@centos8 influx]# python3 --version
Python 3.6.8
[root@centos8 influx]# ansible --version
ansible 2.10.1
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Apr 16 2020, 01:36:27) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
lb vm 的版本
[root@loadbalancer ~]# influx --version
InfluxDB shell version: 1.8.2
[root@loadbalancer ~]# python3 --version
Python 3.6.8
【问题讨论】:
-
缺少一个 python 模块 (
requests)。您应该运行pippre_task 以确保安装了所有必需的模块。 -
@KlausD。我现在添加并尝试了它的工作,但仍然得到相同的结果。 "- name: 安装 pip pip: name: requests"
-
请注意,该模块必须安装在目标上(即
lb)和正确的python版本(即3.6.8而不是2.7,如果你都安装了)。 -
/usr/bin/python3 -m pip list在该主机上返回什么? -
@thargalin 那么你必须找出为什么你认为它已安装以及为什么 ansible 认为它没有。提示:在这个猜谜游戏中,机器 99.99999% 的时间都是正确的。
标签: python python-3.x ansible influxdb