我在RHEL8服务器上运行Ansible Tower v3.8.6,并通过以下操作定义了一个自定义环境链接我已经在"设置-系统"下添加了这个自定义环境;自定义虚拟环境路径";并使这个自定义环境成为我所在组织的默认环境。
我在我的剧本中添加了以下内容,它证实了我正在使用";正确的";在我的自定义虚拟环境中定义的ansible和python的版本
- name: get ansible and python versions
shell: |
ansible --version
python -V
register: result
- name: display ansible and python versions
debug:
var: result.stdout
我设置了这个环境,以便可以与Ovirt 4.5环境交互。尽管事实上我已经安装了python ovirt sdk,但我一直收到这个错误。
"msg": "ovirtsdk4 version 4.4.0 or higher is required for this module"
我在谷歌上搜索了又搜索,但没有一个解决方案对我有效。
这是一项失败的事业吗?升级到Ansible自动化平台是不可能的。
你知道我该怎么做吗?
#pwd
/var/lib/awx/venv/rhv-4.5
#source bin/activate
(rhv-4.5) #ansible --version
ansible [core 2.12.6]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /var/lib/awx/venv/rhv-4.5/lib/python3.8/site-packages/ansible
ansible collection location = /var/lib/awx/vendor/inventory_collections:/opt/collections
executable location = /var/lib/awx/venv/rhv-4.5/bin/ansible
python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
jinja version = 3.1.2
libyaml = True
(rhv-4.5) #python -V
Python 3.8.12
(rhv-4.5) #pip list
Package Version
----------------------- ---------
ansible-core 2.12.6
certifi 2022.6.15
cffi 1.15.1
charset-normalizer 2.1.1
cryptography 37.0.4
idna 3.3
Jinja2 3.1.2
lxml 4.9.1
MarkupSafe 2.1.1
ntlm-auth 1.5.0
ovirt-engine-sdk-python 4.5.2
packaging 21.3
pip 22.2.2
psutil 5.9.1
pycparser 2.21
pycurl 7.45.1
pykerberos 1.2.4
pyparsing 3.0.9
pywinrm 0.4.3
PyYAML 6.0
requests 2.28.1
requests-ntlm 1.1.0
resolvelib 0.5.4
setuptools 65.3.0
six 1.16.0
urllib3 1.26.12
wheel 0.37.1
xmltodict 0.13.0
(rhv-4.5) #
编辑
我写了一个小剧本来测试供应商内部的ovirt_auth。
---
- name: Test ovirt_auth
hosts: localhost
vars:
rhv1_url: "https://rhvm.server.local/ovirt-engine/api"
rhv1_username: "me@rhvm.local"
rhv1_passwd: "Super Secure Password"
tasks:
- name: Authenticate with RHV
ovirt.ovirt.ovirt_auth:
url: "{{ rhv1_url }}"
username: "{{ rhv1_username }}"
password: "{{ rhv1_passwd }}"
- name: debug ovirt_auth
debug:
var: ovirt_auth
这起到了作用,调试打印出了预期的输出。
当我把它穿过Ansible Tower时,失败了;该模块需要ovirtsdk4版本4.4.0或更高版本";消息返回
所以看起来Ansible Tower没有收到备忘录。。。
因此,解决方案看似简单,并向Red Hat Support的Kevin大声寻求答案。
工作流使用名为"inv localhost"的资源清册在Ansible Tower服务器上运行。这个存货已经有了";ansible_connection:local;但需要"ansible_python_pinterpreter:";{{ansible_playbook_python}}"'也
现在它工作了!
此外,我没有正确遵循自定义环境文档。不用说,仔细阅读文档。。。
感谢