2

我在 docker 驱动程序中经常使用分子。在某些情况下,docker 不是测试 ansible 角色的正确工具,所以我想在 openstack 中启动一个 vm。

我创建了一个 ansible 角色,molecule role -r <rolename>并将分子.yml 中的驱动程序更改为“openstack”。这是我当前的molecule.yml的一个例子:

---
dependency:
  name: galaxy
driver:
  name: openstack
lint:
  name: yamllint
platforms:
  - name: molecule-role-docker
    image: CentOS7
    flavor: ECS.UC1.4-4
    auto_ip: true
    security_groups: ssh
    key_name: mykey-ci
provisioner:
  name: ansible
  lint:
    name: ansible-lint
verifier:
  name: testinfra
  lint:
    name: flake8

不幸的是,似乎缺少 create.yml 文件,这会启动机器:

[...]
Validation completed successfully.
--> Test matrix

└── default
    ├── dependency
    ├── create
    ├── prepare
    └── converge

--> Scenario: 'default'
--> Action: 'dependency'
Skipping, missing the requirements file.
--> Scenario: 'default'
--> Action: 'create'
ERROR! the playbook: None could not be found
ERROR:

如果我创建一个 create.yml 文件,错误消息表明它发现文件为空:

[...]
--> Scenario: 'default'
--> Action: 'create'
ERROR! Empty playbook, nothing to do
ERROR:

那么,如何让 openstack 驱动程序正常工作以及如何创建和准备虚拟机来运行我的检查呢?

我使用分子 2.22、ansible 2.9.4 和 python 3.7.6。

正如文档中所建议的,我已经安装了分子 openstack 插件:pip3 install 'molecule[openstack]'

4

1 回答 1

1

默认驱动程序是 docker。您应该从 openstack 驱动程序开始创建您的角色。这将为您在分子.yml 中放置正确的设置,并在您的默认场景中创建必要的基础文件:

molecule init role -d openstack -r my_role

您也可以在现有角色中启动新场景。从你的角色的根源

molecule init scenario -d openstack -s my_scenario
于 2020-02-01T00:38:02.327 回答