Ansible openstack.cloud 模块不起作用 [已关闭]

Ansible openstack.cloud module doesn´t work [closed]

提问人:OJR 提问时间:11/17/2023 最后编辑:ZeitounatorOJR 更新时间:11/17/2023 访问量:33

问:


这个问题似乎与特定的编程问题、软件算法或程序员主要使用的软件工具无关。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释在哪里可以回答该问题。

5天前关闭。

我已经尝试了所有方法,到处搜索,但我似乎找不到解决方案。我想使用 Ansible 中的 openstack.cloud 模块通过 Ansible 在 OpenStack 中创建和分配卷。

因此,我正在执行测试,例如,检索有关OpenStack中当前存在的卷的信息。任务如下:

- name: 1). Openstack Volumen Information
  openstack.cloud.volume_info:
   name: test1
  vars:
   ansible_python_interpreter: /usr/bin/python3.8

下面是 playbook 文件,我在其中确保设置了 OpenStack 的身份验证环境变量:

---
- name: Test  
  hosts: 
     - Test 
  gather_facts: yes 
  roles:
    - role: volume_test
  vars:
  environment:
   http_proxy: http://10.40.40.20:80
   https_proxy: http://10.40.40.20:80
   ftp_proxy: http://10.40.40.20:80
   no_proxy: 127.0.0.1,localhost
   OS_AUTH_URL: https://horizon/test:3000
   OS_IDENTITY_API_VERSION: 3
   OS_INTERFACE: public
   OS_PASSWORD: '<password>'
   OS_PASSWORD_INPUT: '<password>'
   OS_PROJECT_DOMAIN_ID: default
   OS_PROJECT_ID: ce9f3801b1234afb83fbg0c93c987cb5
   OS_PROJECT_NAME: '<project_name>'
   OS_REGION_NAME: RegionOne
   OS_USERNAME: '<user_name>'
   OS_USER_DOMAIN_NAME: Default

我已经在 CentOS 7.9 和 Ubuntu 20 VM 上尝试过这个,但我收到以下错误:

fatal: [Test]: FAILED! => {                                                                                                         
    "changed": false,                                                                                                                                                               
    "module_stderr": "Shared connection to <test_host> closed.\r\n",                                                                       
    "module_stdout": "Failed to discover available identity versions when contacting https://horizon/test:3000. Attempting to parse version from URL.\r\nTraceback (mo
st recent call last):\r\n  File \"/usr/lib/python3/dist-packages/urllib3/connectionpool.py\", line 662, in urlopen\r\n    self._prepare_proxy(conn)\r\n  File \"/usr/lib/python3/dis
t-packages/urllib3/connectionpool.py\", line 950, in _prepare_proxy\r\n    conn.connect()\r\n  File \"/usr/lib/python3/dist-packages/urllib3/connection.py\",
....
File \"/home/appserv/.local/lib/python3.8/site-packages/keystoneauth1/session.py\", line 1141, in post\r\n    return self.request(url, 'POST', **kwargs)\r\n  File \"/home/appserv/.local/lib/python3.8/site-packages/keystoneauth1/session.py\", line 923, in request\r\n    resp = send(**kwargs)\r\n  File \"/home/appserv/.local/lib/python3.8/site-packages/keystoneauth1/session.py\", line 1030, in _send_request\r\n    raise exceptions.ConnectFailure(msg)\r\nkeystoneauth1.exceptions.connection.ConnectFailure: Unable to establish connection to https://horizon/test:3000/v3/auth/tokens: HTTPSConnectionPool(host='hori
zon, port=3000): Max retries exceeded with url: /v3/auth/tokens (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Tunnel or 
SSL Forbidden')))\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
Ansible OpenStack的

评论

3赞 M. F. 11/17/2023
您是否检查过 horizon/test:3000 是否可访问?该错误似乎指向 Ansible 与您的操作系统实例之间的连接问题,很可能是由代理设置引起的:由 ProxyError('无法连接到代理.', OSError('隧道连接失败:403 隧道或 SSL 禁止访问')引起。
2赞 Zeitounator 11/17/2023
您正在通过不允许 ssl 隧道的代理进行连接:ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Tunnel or SSL Forbidden')))

答:

0赞 OJR 11/17/2023 #1

正如@Zeitounator指出的,在提到代理问题时,我的解决方案是在 playbook 文件中注释 http_proxy、https_proxy 和 no_proxy 的环境变量。