Как использовать молекулу с Openstack - PullRequest
2 голосов
/ 31 января 2020

Я часто использую молекулы с драйвером docker. Есть несколько случаев, когда docker не является подходящим инструментом для проверки ролей ansible, поэтому я бы хотел развернуть виртуальную машину в openstack.

Я создал роль ansible с molecule role -r <rolename> и изменил драйвер в молекуле .yml на 'openstack'. Это пример моего нынешнего молекулы молекулы: .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]'

1 Ответ

1 голос
/ 01 февраля 2020

Драйвер по умолчанию docker. Вы должны создать свою роль с самого начала с помощью драйвера openstack. Это позволит вам установить правильную настройку в молекуле молекулы.yml, а также создать необходимые базовые файлы в сценарии по умолчанию:

molecule init role -d openstack -r my_role

Вы также можете инициировать новый сценарий в существующей роли. Из root вашей роли

molecule init scenario -d openstack -s my_scenario
...