Molecule не может подключиться к моей виртуальной машине Docker-Machine при тестировании моей роли Ansible в macOS
При попытке проверить мою роль Ansible с помощью Molecule's docker
драйвер, похоже, что Molecule не может подключиться к моей локальной виртуальной машине Docker-Machine на macOS.
Вот molecule.yml
файл, который я использую:
---
dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
platforms:
- name: instance
image: centos:7
provisioner:
name: ansible
lint:
name: ansible-lint
scenario:
name: default
verifier:
name: testinfra
lint:
name: flake8
Бег molecule --debug test
отображает эту ошибку:
Error connecting: Error while fetching server API version:
('Connection aborted.', BadStatusLine('\\x15\\x03\\x01\\x00\\x02\\x02\\n',))
Я установил зависимости с помощью этих команд с pip
в новом virtualenv
:
pip install molecule ansible docker
Моя среда Docker-Machine настроена на следующее: я могу нормально выполнять стандартные команды Docker, но не из Molecular:
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/nwinkler/.docker/machine/machines/default
Просматривая вывод журнала отладки Molecule, я заметил, что Docker-клиент, используемый Molecule, похоже, не использует настройки TLS:
failed: [localhost] (item={'_ansible_parsed': True, '_ansible_item_result': True, '_ansible_item_label': {'image': u'centos:7', 'name': u'instance'}, u'ansible_job_id': u'620627628081.52375', 'failed': False, u'started': 1, 'changed': True, 'item': {'image': u'centos:7', 'name': u'instance'}, u'finished': 0, u'results_file': u'/Users/nwinkler/.ansible_async/620627628081.52375', '_ansible_ignore_errors': None, '_ansible_no_log': False}) => {
"ansible_job_id": "620627628081.52375",
"attempts": 1,
"changed": false,
"finished": 1,
"invocation": {
"module_args": {
"api_version": "auto",
"auto_remove": false,
"cacert_path": null,
"cert_path": null,
"docker_host": "tcp://192.168.99.100:2376",
"domainname": null,
"hostname": null,
"ssl_version": null,
"tls": false,
"tls_hostname": "localhost",
"tls_verify": false,
}
},
Как видите, docker_host
переменная установлена на правильное значение, но tls_verify
а также cert_path
не установлены.
Я что-то упустил в моей настройке? Как я могу сказать Molecule использовать мои переменные окружения при вызове Docker?