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?

0 ответов

Другие вопросы по тегам