【问题标题】:Deploying a new VM using Packstack and Ansible使用 Packstack 和 Ansible 部署新 VM
【发布时间】:2018-07-26 09:03:52
【问题描述】:

我已经安装了 Packstack 和 Ansible 2.7.5,我想使用 Ansible 进行测试和部署 VM。我正在使用以下代码:

--- #Deploy an instance
- name: Deploy an instance
  hosts: localhost
  gather_facts: false
  tasks: 
  - name: Deploy an instance
    os_server: 
       state: present
       auth: 
         auth_url: http://127.0.0.1:5000/v2.0/
         username: admin
         password: 712e207207aa4083 
         project_name: admin 
       name: webserver
       image: cirros
       key_name: root
       timeout: 200  
       flavor: 1
       nics:
        - net-id: fa6af4e6-c44e-439c-a91c-03bcae55e587
       meta:
        hostname: webserver.localdomain

当我运行它时,我收到以下错误:

TASK [Deploy an instance] *****************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "To utilize this module, the installed version ofthe openstacksdk library MUST be >=0.12.0"}
    to retry, use: --limit @/home/dante/Openstack/deployment.retry

PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1   

我也尝试安装 Openstacksdk 0.12.0,但我收到了一些与依赖项相关的其他错误:

[dante@localhost Openstack]$ sudo pip install openstacksdk==0.12.0
...
Installing collected packages: ipaddress, os-service-types, PyYAML, openstacksdk
  Found existing installation: ipaddress 1.0.16
Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

有什么办法可以解决这个问题吗?或者,如果这个模块是新的并且有太多的错误,有没有其他方法可以使用 Ansible 在 Openstack 中创建 VM?我还检查了 nova_compute 模块的版本,但它说这个 Ansible 模块在 Ansible 2.0 之后已被弃用。

最好的问候, 罗曼

【问题讨论】:

  • 您从哪里获得 Ansible 2.7.5?
  • @techraf:我正在使用一些 EC2 服务器,这是该存储库可用的最后一个 Ansible 版本。
  • 有趣,因为截至今天的最新版本是 2.6.2。
  • 可能他的意思是 Python 2.7.5?

标签: ansible virtual-machine openstack


【解决方案1】:

虽然在你的 hosts: 中是 localhost,你仍然需要告诉它连接类型 https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html 以便你可以使用 delegate_to: localhost 或 connection: localhost 。这对于任何与 API 对话或不需要 ssh 连接来执行任务的模块都是必需的。例如 aws、gitlab、github、nios 模块。

【讨论】:

  • 感谢您的回复,但最终,通过安装该数据包及其所有必需的依赖项解决了这个问题。
  • 我错过了那部分。您使用的是非常旧版本的 ansible。您应该尝试更新版本,因为这样做更容易。
  • 我认为Ansible的最后一个版本是这个:2.7.5
  • 2.7.5 处于开发阶段,尚未正式发布。 2.6.2 是最新的。
【解决方案2】:

最终通过安装 openstacksdk 及其所有依赖项解决了这个问题。这里也是代码:

--- #Deploy an instance
- name: Deploy an instance
  hosts: localhost
  gather_facts: false
  tasks: 
  - name: Deploy an instance
    os_server: 
       state: present
       auth: 
         auth_url: http://<URL TAKEN FROM SOURCE FILE> 
         username: <USERNAME>
         password: <PASSWORD> 
       name: webserver
       image: <ID OF THE IMAGE>
       timeout: 700  
       flavor: 1
       auto_floating_ip: yes
    register: webserver

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 2018-12-23
    • 2019-07-21
    • 2022-06-23
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多