ansible --version && molecule --version
docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:latest sudo molecule --version
molecule, version 2.19.0
docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:latest sudo ansible --version
ansible 2.7.8
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15 (default, Jan 24 2019, 16:32:39) [GCC 8.2.0]
Molecule installation method (one of):
Ansible installation method (one of):
docker images | grep molecule
quay.io/ansible/molecule latest 76c463a83726 3 days ago 516MB
molecule_local/centos 7 d5efb4c1540b 3 days ago 226MB
quay.io/ansible/molecule 2.19 0a943e169bf0 4 months ago 580MB
````
Detail any linters or test runners used:
# Desired Behavior
On repo https://github.com/alainchiasson/role-test-duplicates.git
The following works :
docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:2.19 sudo molecule test
Please give some details of the feature being requested or what
should happen if providing a bug report.
# Actual Behaviour
On repo https://github.com/alainchiasson/role-test-duplicates.git
The following fails:
docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:latest sudo molecule test
Running from a macbook pro. - debug of prepare.
MBP-de-Alain:role-test-duplicates alain$ docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:latest sudo molecule --debug create
--> Validating schema /root/molecule/default/molecule.yml.
Validation completed successfully.
--> Test matrix
โโโ default
โโโ create
โโโ prepare
--> Scenario: 'default'
--> Action: 'create'
ANSIBLE_CONFIG: /tmp/molecule/root/default/ansible.cfg
ANSIBLE_FILTER_PLUGINS: /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/filters:/tmp/molecule/root/default/plugins/filters:/root/plugins/filters
ANSIBLE_LIBRARY: /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/libraries:/tmp/molecule/root/default/library:/root/library
ANSIBLE_ROLES_PATH: /tmp/molecule/root/default/roles:/
MOLECULE_DEBUG: 'True'
MOLECULE_DEPENDENCY_NAME: galaxy
MOLECULE_DRIVER_NAME: docker
MOLECULE_ENV_FILE: /root/.env.yml
MOLECULE_EPHEMERAL_DIRECTORY: /tmp/molecule/root/default
MOLECULE_FILE: /root/molecule/default/molecule.yml
MOLECULE_INSTANCE_CONFIG: /tmp/molecule/root/default/instance_config.yml
MOLECULE_INVENTORY_FILE: /tmp/molecule/root/default/ansible_inventory.yml
MOLECULE_LINT_NAME: yamllint
MOLECULE_PROJECT_DIRECTORY: /root
MOLECULE_PROVISIONER_LINT_NAME: ansible-lint
MOLECULE_PROVISIONER_NAME: ansible
MOLECULE_SCENARIO_DIRECTORY: /root/molecule/default
MOLECULE_SCENARIO_NAME: default
MOLECULE_VERIFIER_LINT_NAME: flake8
MOLECULE_VERIFIER_NAME: testinfra
MOLECULE_VERIFIER_TEST_DIRECTORY: /root/molecule/default/tests
DEBUG: SHELL REPLAY
ANSIBLE_CONFIG=/tmp/molecule/root/default/ansible.cfg ANSIBLE_FILTER_PLUGINS=/usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/filters:/tmp/molecule/root/default/plugins/filters:/root/plugins/filters ANSIBLE_LIBRARY=/usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/libraries:/tmp/molecule/root/default/library:/root/library ANSIBLE_ROLES_PATH=/tmp/molecule/root/default/roles:/ MOLECULE_DEBUG=True MOLECULE_DEPENDENCY_NAME=galaxy MOLECULE_DRIVER_NAME=docker MOLECULE_ENV_FILE=/root/.env.yml MOLECULE_EPHEMERAL_DIRECTORY=/tmp/molecule/root/default MOLECULE_FILE=/root/molecule/default/molecule.yml MOLECULE_INSTANCE_CONFIG=/tmp/molecule/root/default/instance_config.yml MOLECULE_INVENTORY_FILE=/tmp/molecule/root/default/ansible_inventory.yml MOLECULE_LINT_NAME=yamllint MOLECULE_PROJECT_DIRECTORY=/root MOLECULE_PROVISIONER_LINT_NAME=ansible-lint MOLECULE_PROVISIONER_NAME=ansible MOLECULE_SCENARIO_DIRECTORY=/root/molecule/default MOLECULE_SCENARIO_NAME=default MOLECULE_VERIFIER_LINT_NAME=flake8 MOLECULE_VERIFIER_NAME=testinfra MOLECULE_VERIFIER_TEST_DIRECTORY=/root/molecule/default/tests
DEBUG: COMMAND
/usr/bin/ansible-playbook --skip-tags=molecule-notest,notest --inventory=/tmp/molecule/root/default/ansible_inventory.yml --diff /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/playbooks/docker/create.yml -vvv
ansible-playbook 2.7.8
config file = /tmp/molecule/root/default/ansible.cfg
configured module search path = [u'/usr/lib/python2.7/site-packages/molecule/provisioner/ansible/plugins/libraries', u'/tmp/molecule/root/default/library', u'/root/library']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.15 (default, Jan 24 2019, 16:32:39) [GCC 8.2.0]
Using /tmp/molecule/root/default/ansible.cfg as config file
/tmp/molecule/root/default/ansible_inventory.yml did not meet host_list requirements, check plugin documentation if this is unexpected
/tmp/molecule/root/default/ansible_inventory.yml did not meet script requirements, check plugin documentation if this is unexpected
Parsed /tmp/molecule/root/default/ansible_inventory.yml inventory source with yaml plugin
PLAYBOOK: create.yml ***********************************************************
1 plays in /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/playbooks/docker/create.yml
PLAY [Create] ******************************************************************
META: ran handlers
TASK [Log into a Docker registry] **********************************************
task path: /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/playbooks/docker/create.yml:8
skipping: [localhost] => (item={'image': u'centos:7', 'name': u'instance'}) => {
"changed": false,
"item": {
"image": "centos:7",
"name": "instance"
},
"skip_reason": "Conditional result was False"
}
TASK [Create Dockerfiles from image names] *************************************
task path: /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/playbooks/docker/create.yml:21
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818 `" && echo ansible-tmp-1552055034.91-540484935818="` echo /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818 `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/files/stat.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-70NMJeb/tmp9_ABCY TO /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_stat.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/ /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_stat.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_stat.py && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/files/file.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-70NMJeb/tmpNJYzkZ TO /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_file.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/ /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_file.py && sleep 0'
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-70NMJeb/tmpYHCJgR/Dockerfile.j2 TO /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/ /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/files/copy.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-70NMJeb/tmpcZm_BG TO /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_copy.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/ /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_copy.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/AnsiballZ_copy.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/ > /dev/null 2>&1 && sleep 0'
--- before
+++ after: /root/.ansible/tmp/ansible-local-70NMJeb/tmpYHCJgR/Dockerfile.j2
@@ -0,0 +1,10 @@
+# Molecule managed
+
+FROM centos:7
+
+RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
+ elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \
+ elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
+ elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \
+ elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \
+ elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi
changed: [localhost] => (item={'image': u'centos:7', 'name': u'instance'}) => {
"changed": true,
"checksum": "40a922dca6c7a93024ac1ab412987783252b69c2",
"dest": "/tmp/molecule/root/default/Dockerfile_centos_7",
"diff": [
{
"after": "# Molecule managed\n\nFROM centos:7\n\nRUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \\\n elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \\\n elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \\\n elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \\\n elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \\\n elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi\n",
"after_header": "/root/.ansible/tmp/ansible-local-70NMJeb/tmpYHCJgR/Dockerfile.j2",
"before": ""
}
],
"gid": 0,
"group": "root",
"invocation": {
"module_args": {
"_original_basename": "Dockerfile.j2",
"attributes": null,
"backup": false,
"checksum": "40a922dca6c7a93024ac1ab412987783252b69c2",
"content": null,
"delimiter": null,
"dest": "/tmp/molecule/root/default/Dockerfile_centos_7",
"directory_mode": null,
"follow": false,
"force": true,
"group": null,
"local_follow": null,
"mode": null,
"owner": null,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": "/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source",
"unsafe_writes": null,
"validate": null
}
},
"item": {
"image": "centos:7",
"name": "instance"
},
"md5sum": "6e0af0361f5bc81091582444d1c7fa34",
"mode": "0644",
"owner": "root",
"size": 850,
"src": "/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source",
"state": "file",
"uid": 0
}
TASK [Discover local Docker images] ********************************************
task path: /usr/lib/python2.7/site-packages/molecule/provisioner/ansible/playbooks/docker/create.yml:29
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387 `" && echo ansible-tmp-1552055036.04-63603356363387="` echo /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387 `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/docker/docker_image_facts.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-70NMJeb/tmpYNWRDR TO /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387/AnsiballZ_docker_image_facts.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387/ /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387/AnsiballZ_docker_image_facts.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387/AnsiballZ_docker_image_facts.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1552055036.04-63603356363387/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
WARNING: The below traceback may *not* be related to the actual failure.
File "/tmp/ansible_docker_image_facts_payload_ZdQCDR/__main__.py", line 161, in <module>
from docker import utils
failed: [localhost] (item={'_ansible_parsed': True, u'md5sum': u'6e0af0361f5bc81091582444d1c7fa34', u'uid': 0, u'dest': u'/tmp/molecule/root/default/Dockerfile_centos_7', '_ansible_item_result': True, u'owner': u'root', 'diff': [{'after': u"# Molecule managed\n\nFROM centos:7\n\nRUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \\\n elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \\\n elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \\\n elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \\\n elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \\\n elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi\n", 'after_header': u'/root/.ansible/tmp/ansible-local-70NMJeb/tmpYHCJgR/Dockerfile.j2', 'before': u''}], '_ansible_no_log': False, u'src': u'/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source', u'group': u'root', '_ansible_item_label': {'image': u'centos:7', 'name': u'instance'}, 'item': {'image': u'centos:7', 'name': u'instance'}, u'checksum': u'40a922dca6c7a93024ac1ab412987783252b69c2', u'changed': True, 'failed': False, u'state': u'file', u'gid': 0, u'mode': u'0644', u'invocation': {u'module_args': {u'directory_mode': None, u'force': True, u'remote_src': None, u'dest': u'/tmp/molecule/root/default/Dockerfile_centos_7', u'selevel': None, u'_original_basename': u'Dockerfile.j2', u'delimiter': None, u'regexp': None, u'owner': None, u'follow': False, u'validate': None, u'local_follow': None, u'src': u'/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source', u'group': None, u'unsafe_writes': None, u'checksum': u'40a922dca6c7a93024ac1ab412987783252b69c2', u'seuser': None, u'serole': None, u'content': None, u'setype': None, u'mode': None, u'attributes': None, u'backup': False}}, u'size': 850, '_ansible_ignore_errors': None}) => {
"changed": false,
"invocation": {
"module_args": {
"api_version": "auto",
"cacert_path": null,
"cert_path": null,
"debug": false,
"docker_host": "unix://var/run/docker.sock",
"key_path": null,
"name": [
"molecule_local/instance"
],
"ssl_version": null,
"timeout": 60,
"tls": false,
"tls_hostname": "localhost",
"tls_verify": false
}
},
"item": {
"changed": true,
"checksum": "40a922dca6c7a93024ac1ab412987783252b69c2",
"dest": "/tmp/molecule/root/default/Dockerfile_centos_7",
"diff": [
{
"after": "# Molecule managed\n\nFROM centos:7\n\nRUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \\\n elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \\\n elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \\\n elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \\\n elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \\\n elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi\n",
"after_header": "/root/.ansible/tmp/ansible-local-70NMJeb/tmpYHCJgR/Dockerfile.j2",
"before": ""
}
],
"failed": false,
"gid": 0,
"group": "root",
"invocation": {
"module_args": {
"_original_basename": "Dockerfile.j2",
"attributes": null,
"backup": false,
"checksum": "40a922dca6c7a93024ac1ab412987783252b69c2",
"content": null,
"delimiter": null,
"dest": "/tmp/molecule/root/default/Dockerfile_centos_7",
"directory_mode": null,
"follow": false,
"force": true,
"group": null,
"local_follow": null,
"mode": null,
"owner": null,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": "/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source",
"unsafe_writes": null,
"validate": null
}
},
"item": {
"image": "centos:7",
"name": "instance"
},
"md5sum": "6e0af0361f5bc81091582444d1c7fa34",
"mode": "0644",
"owner": "root",
"size": 850,
"src": "/root/.ansible/tmp/ansible-tmp-1552055034.91-540484935818/source",
"state": "file",
"uid": 0
},
"msg": "Failed to import docker or docker-py - No module named docker. Try `pip install docker` or `pip install docker-py` (Python 2.6)"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=1
This may also be relavent - pip list in both images.
### quay.io/ansible/molecule:latest sudo pip list
MBP-de-Alain:role-test-duplicates alain$ docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:latest sudo pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Package Version
ansible 2.7.8
ansible-lint 3.4.23
anyconfig 0.9.7
arrow 0.13.1
asn1crypto 0.24.0
atomicwrites 1.3.0
attrs 19.1.0
backports.functools-lru-cache 1.5
bcrypt 3.1.6
binaryornot 0.4.4
Cerberus 1.2
certifi 2018.11.29
cffi 1.12.2
chardet 3.0.4
click 6.7
click-completion 0.3.1
colorama 0.3.9
configparser 3.7.3
cookiecutter 1.6.0
cryptography 2.6.1
enum34 1.1.6
fasteners 0.14.1
flake8 3.5.0
funcsigs 1.0.2
future 0.17.1
git-url-parse 1.2.0
idna 2.8
ipaddress 1.0.22
Jinja2 2.10
jinja2-time 0.2.0
MarkupSafe 1.1.1
mccabe 0.6.1
molecule 2.19.0
monotonic 1.5
more-itertools 5.0.0
paramiko 2.4.2
pathlib2 2.3.3
pathspec 0.5.9
pbr 4.1.0
pexpect 4.6.0
pip 19.0.3
pluggy 0.9.0
poyo 0.4.2
psutil 5.4.6
ptyprocess 0.6.0
py 1.8.0
pyasn1 0.4.5
pycodestyle 2.3.1
pycparser 2.19
pyflakes 1.6.0
PyNaCl 1.3.0
pytest 4.3.0
python-dateutil 2.8.0
python-gilt 1.2.1
PyYAML 3.13
requests 2.21.0
scandir 1.9.0
setuptools 40.6.3.post20190116
sh 1.12.14
six 1.11.0
tabulate 0.8.2
testinfra 1.16.0
tree-format 0.1.2
urllib3 1.24.1
virtualenv 16.4.3
whichcraft 0.5.2
yamllint 1.11.1
### quay.io/ansible/molecule:2.19 sudo pip list
MBP-de-Alain:role-test-duplicates alain$ docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:2.19 sudo pip list
Package Version
adal 1.2.0
ansible 2.7.1
ansible-lint 3.4.23
anyconfig 0.9.7
applicationinsights 0.11.7
argcomplete 1.9.4
arrow 0.12.1
asn1crypto 0.24.0
atomicwrites 1.2.1
attrs 18.2.0
azure-batch 5.1.0
azure-cli 2.0.49
azure-cli-acr 2.1.7
azure-cli-acs 2.3.9
azure-cli-advisor 0.6.0
azure-cli-ams 0.2.4
azure-cli-appservice 0.2.5
azure-cli-backup 1.2.1
azure-cli-batch 3.4.1
azure-cli-batchai 0.4.4
azure-cli-billing 0.2.0
azure-cli-botservice 0.1.1
azure-cli-cdn 0.2.0
azure-cli-cloud 2.1.0
azure-cli-cognitiveservices 0.2.3
azure-cli-command-modules-nspkg 2.0.2
azure-cli-configure 2.0.18
azure-cli-consumption 0.4.0
azure-cli-container 0.3.7
azure-cli-core 2.0.35
azure-cli-cosmosdb 0.2.2
azure-cli-dla 0.2.3
azure-cli-dls 0.1.4
azure-cli-dms 0.1.1
azure-cli-eventgrid 0.2.0
azure-cli-eventhubs 0.3.0
azure-cli-extension 0.2.2
azure-cli-feedback 2.1.4
azure-cli-find 0.2.12
azure-cli-hdinsight 0.1.0
azure-cli-interactive 0.3.31
azure-cli-iot 0.3.3
azure-cli-iotcentral 0.1.3
azure-cli-keyvault 2.2.5
azure-cli-lab 0.1.2
azure-cli-maps 0.3.2
azure-cli-monitor 0.2.5
azure-cli-network 2.2.7
azure-cli-nspkg 3.0.2
azure-cli-policyinsights 0.1.0
azure-cli-profile 2.1.1
azure-cli-rdbms 0.3.2
azure-cli-redis 0.3.2
azure-cli-relay 0.1.2
azure-cli-reservations 0.4.0
azure-cli-resource 2.1.5
azure-cli-role 2.1.8
azure-cli-search 0.1.1
azure-cli-servicebus 0.3.1
azure-cli-servicefabric 0.1.6
azure-cli-signalr 1.0.0
azure-cli-sql 2.1.5
azure-cli-storage 2.2.3
azure-cli-vm 2.2.6
azure-common 1.1.11
azure-datalake-store 0.0.34
azure-graphrbac 0.40.0
azure-keyvault 1.0.0a1
azure-mgmt-advisor 1.0.1
azure-mgmt-authorization 0.50.0
azure-mgmt-batch 4.1.0
azure-mgmt-batchai 2.0.0
azure-mgmt-billing 0.2.0
azure-mgmt-botservice 0.1.0
azure-mgmt-cdn 3.0.0
azure-mgmt-cognitiveservices 3.0.0
azure-mgmt-compute 2.1.0
azure-mgmt-consumption 2.0.0
azure-mgmt-containerinstance 0.4.0
azure-mgmt-containerregistry 2.0.0
azure-mgmt-containerservice 3.0.1
azure-mgmt-cosmosdb 0.5.0
azure-mgmt-datalake-analytics 0.2.0
azure-mgmt-datalake-nspkg 3.0.1
azure-mgmt-datalake-store 0.5.0
azure-mgmt-datamigration 0.1.0
azure-mgmt-devtestlabs 2.2.0
azure-mgmt-dns 1.2.0
azure-mgmt-eventgrid 0.4.0
azure-mgmt-eventhub 2.1.0
azure-mgmt-hdinsight 0.1.0
azure-mgmt-iotcentral 0.2.0
azure-mgmt-iothub 0.6.0
azure-mgmt-iothubprovisioningservices 0.2.0
azure-mgmt-keyvault 0.40.0
azure-mgmt-loganalytics 0.2.0
azure-mgmt-managementgroups 0.1.0
azure-mgmt-maps 0.1.0
azure-mgmt-marketplaceordering 0.1.0
azure-mgmt-media 1.0.0rc1
azure-mgmt-monitor 0.5.2
azure-mgmt-msi 0.2.0
azure-mgmt-network 1.7.1
azure-mgmt-nspkg 2.0.0
azure-mgmt-policyinsights 0.1.0
azure-mgmt-rdbms 1.2.0
azure-mgmt-recoveryservices 0.1.0
azure-mgmt-recoveryservicesbackup 0.1.1
azure-mgmt-redis 5.0.0
azure-mgmt-relay 0.1.0
azure-mgmt-reservations 0.3.0
azure-mgmt-resource 1.2.2
azure-mgmt-search 2.0.0
azure-mgmt-servicebus 0.5.2
azure-mgmt-servicefabric 0.2.0
azure-mgmt-signalr 0.1.1
azure-mgmt-sql 0.7.1
azure-mgmt-storage 1.5.0
azure-mgmt-trafficmanager 0.50.0
azure-mgmt-web 0.32.0
azure-multiapi-storage 0.2.2
azure-nspkg 2.0.0
azure-storage 0.35.1
azure-storage-blob 1.3.1
azure-storage-common 1.3.0
azure-storage-nspkg 3.0.0
backports.functools-lru-cache 1.5
backports.ssl-match-hostname 3.5.0.1
bcrypt 3.1.4
binaryornot 0.4.4
Cerberus 1.2
certifi 2018.10.15
cffi 1.11.5
chardet 3.0.4
click 6.7
click-completion 0.3.1
colorama 0.3.9
configparser 3.5.0
cookiecutter 1.6.0
cryptography 2.3.1
docker 3.5.1
docker-pycreds 0.3.0
enum34 1.1.6
fasteners 0.14.1
flake8 3.5.0
funcsigs 1.0.2
future 0.17.0
futures 3.2.0
git-url-parse 1.1.0
humanfriendly 4.17
idna 2.7
ipaddress 1.0.22
isodate 0.6.0
Jinja2 2.10
jinja2-time 0.2.0
jmespath 0.9.3
knack 0.3.3
MarkupSafe 1.0
mccabe 0.6.1
mock 2.0.0
molecule 2.19.0
monotonic 1.5
more-itertools 4.3.0
msrest 0.4.29
msrestazure 0.5.0
ntlm-auth 1.2.0
oauthlib 2.1.0
packaging 18.0
paramiko 2.4.2
pathlib2 2.3.2
pathspec 0.5.9
pbr 4.1.0
pexpect 4.6.0
pip 18.1
pluggy 0.8.0
poyo 0.4.2
prompt-toolkit 1.0.15
psutil 5.4.6
ptyprocess 0.6.0
py 1.7.0
pyasn1 0.4.4
pycodestyle 2.3.1
pycparser 2.19
pydocumentdb 2.3.3
pyflakes 1.6.0
Pygments 2.2.0
PyJWT 1.6.4
PyNaCl 1.3.0
pyOpenSSL 18.0.0
pyparsing 2.2.2
pytest 3.9.3
python-dateutil 2.7.5
python-gilt 1.2.1
pytz 2018.7
pywinrm 0.3.0
PyYAML 3.13
requests 2.20.0
requests-ntlm 1.1.0
requests-oauthlib 1.0.0
scandir 1.9.0
scp 0.12.1
setuptools 39.1.0.post20180508
sh 1.12.14
six 1.11.0
sshtunnel 0.1.4
tabulate 0.8.2
testinfra 1.16.0
tree-format 0.1.2
urllib3 1.24
virtualenv 16.0.0
vsts-cd-manager 1.0.2
wcwidth 0.1.7
websocket-client 0.53.0
wheel 0.30.0
whichcraft 0.5.2
Whoosh 2.7.4
xmltodict 0.11.0
yamllint 1.11.1
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
MBP-de-Alain:role-test-duplicates alain$
```
gundalow: minor edits to add formatting
@alainchiasson Thank you for testing the pre-release and providing very detailed information.
Looks like we are missing a number packages.
Hmmmm, I think there is something up with the Quay tags.
If I run:
โ molecule (master) โ docker run -it quay.io/ansible/molecule:latest molecule --version
molecule, version 2.19.0
โ molecule (master) โ docker run -it quay.io/ansible/molecule:latest "pip freeze | grep docker"
/usr/local/bin/dockerd-entrypoint.sh: exec: line 22: pip freeze | grep docker: not found
But when I run:
โ molecule (master) โ docker run -it quay.io/ansible/molecule:v2.20a2 molecule --version
molecule, version 2.20.0.0a2
โ molecule (master) โ docker run -it quay.io/ansible/molecule:v2.20a2 pip freeze | grep docker
docker==3.7.0
docker-pycreds==0.4.0
And finally, cloning your role and running the following succeeds:
โ role-test-duplicates (master) โ docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:v2.20a2 molecule test
So, I think the latest tag on Quay is not what we think it is!
Regarding missing packages, I've reviewed bce7bfebcaa66c9417f653778f7e4bf03a554af5 again quickly and it does seem like some packages were removed to make the image smaller. A problematic example is the dropping of openssh-client which was added in https://github.com/ansible/molecule/pull/1604 to support install roles with a git+ssh... definition in the requirements.yml.
So, proposal: let's use this issue as a diving board to 1) review packages and re-add 2) clean up tags on Quay?
1) review packages and re-add
Submitted https://github.com/ansible/molecule/pull/1815 for this :+1:
Some discussion followed on #ansible-molecule:
10:54 < decentral1se> gundalow: following https://github.com/ansible/molecule/issues/1813#issuecomment-471031504, is it clear how to clean up Quay tags?
10:54 < decentral1se> anyone hoping to take the pre-release for a test might run into this and think:latestmeans:v2.20a2
10:56 < themroc> latest should be the latest stable
10:56 < themroc> so 2.19 is quite ok no ?
10:58 < decentral1se> RE: latest -> stable, yep, but it seems that latest is pointing to a time when docker was not included on the image
10:59 < decentral1se> so it was some 2.19 build that didn't have the necessary packages? I am not sure
11:00 < decentral1se> resolution for #1813 and tags might be: check out v2.19, build the docker image, check docker and co. are on it and push to latest
11:00 < decentral1se> because I think the:2.19tag has everything that is needed
I see a build of latest on quay.ioo was done ~ two hours ago
```
docker run -it quay.io/ansible/molecule:latest molecule --version
Unable to find image 'quay.io/ansible/molecule:latest' locally
latest: Pulling from ansible/molecule
...
Digest: sha256:0f614b0d45f540a2578c76d8904c7591b798da619c67b5282f332d99814b3242
Status: Downloaded newer image for quay.io/ansible/molecule:latest
molecule, version 2.20.0.0a3.dev1
````
There was an issue identified just after we released 2.20.0.0a2 where I noticed quay.io wasn't building correctly due to the Dockerfile having moved. I did a rebuild of 2.20.0.0a2 in quay.io, though I didn't rebuild master at the time.
Are the image builds now good, ignoring the changed packages, which is addressed in https://github.com/ansible/molecule/pull/1815?
Thanks for checking @gundalow. I think we're fine for this ticket then given the current situation.
Can you confirm @alainchiasson?
I've opened up https://github.com/ansible/molecule/issues/1818 to get feedback on tags usage.
I've posted a correction suggestion to #1815. Should be good to merge after it's addressed.
Is it safe to close this one now?
Feel free to re-open!
So which tag should be working ? Or is that what you are fixing withe the new ticket ? (which I'm fine with)
right now:
quay.io/ansible/molecule latest 7994ad838131 18 hours ago 704MB
...
Lint completed successfully.
--> Executing Ansible Lint on /root/molecule/default/playbook.yml...
Traceback (most recent call last):
File "/usr/local/bin/ansible-lint", line 10, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/ansiblelint/__main__.py", line 187, in main
matches.extend(runner.run())
File "/usr/local/lib/python3.7/site-packages/ansiblelint/__init__.py", line 282, in run
skip_list=self.skip_list))
File "/usr/local/lib/python3.7/site-packages/ansiblelint/__init__.py", line 175, in run
matches.extend(rule.matchyaml(playbookfile, text))
File "/usr/local/lib/python3.7/site-packages/ansiblelint/__init__.py", line 122, in matchyaml
result = self.matchplay(file, play)
File "/usr/local/lib/python3.7/site-packages/ansiblelint/rules/MetaMainHasInfoRule.py", line 42, in matchplay
if not platform.get('name', None):
AttributeError: 'str' object has no attribute 'get'
...
Same for any of the recent tags as well.
Plus the images no longer use 'sudo' as stated in the docs.
So which tag should be working ?
Hi @alainchiasson, thanks for taking another pass. It should be See https://github.com/ansible/molecule/issues/1813#issuecomment-473317208. We had a discussion on tags and our future plan in detailed in https://github.com/ansible/molecule/issues/1818#issuecomment-473307752. I've got a docs PR cooking for that.devel
Regarding your stack trace, I've got logs that don't show this error on devel, can you confirm?
โ role-test-duplicates (master) โ docker run --rm -it -v "$(pwd)":/root -v /var/run/docker.sock:/var/run/docker.sock -w /root quay.io/ansible/molecule:devel molecule lint
--> Validating schema /root/molecule/default/molecule.yml.
Validation completed successfully.
--> Test matrix
โโโ default
โโโ lint
--> Scenario: 'default'
--> Action: 'lint'
--> Executing Yamllint on files found in /root/...
Lint completed successfully.
--> Executing Flake8 on files found in /root/molecule/default/tests/...
Lint completed successfully.
--> Executing Ansible Lint on /root/molecule/default/playbook.yml...
[701] Role info should contain platforms
/root/meta/main.yml:1
{'meta/main.yml': {'galaxy_info': {'author': 'Alain Chiasson', 'description': 'Simple role to demostrate assertion.', 'company': 'your company (optional)', 'license': 'license (GPLv2, CC-BY, etc)', 'min_ansible_version': 2.7, 'galaxy_tags': ['demo', 'assertion'], '__line__': 2, '__file__': '/root/meta/main.yml'}, 'dependencies': [], '__line__': 1, '__file__': '/root/meta/main.yml'}}
[703] Should change default metadata: company
/root/meta/main.yml:1
{'meta/main.yml': {'galaxy_info': {'author': 'Alain Chiasson', 'description': 'Simple role to demostrate assertion.', 'company': 'your company (optional)', 'license': 'license (GPLv2, CC-BY, etc)', 'min_ansible_version': 2.7, 'galaxy_tags': ['demo', 'assertion'], '__line__': 2, '__file__': '/root/meta/main.yml'}, 'dependencies': [], '__line__': 1, '__file__': '/root/meta/main.yml'}}
[703] Should change default metadata: license
/root/meta/main.yml:1
{'meta/main.yml': {'galaxy_info': {'author': 'Alain Chiasson', 'description': 'Simple role to demostrate assertion.', 'company': 'your company (optional)', 'license': 'license (GPLv2, CC-BY, etc)', 'min_ansible_version': 2.7, 'galaxy_tags': ['demo', 'assertion'], '__line__': 2, '__file__': '/root/meta/main.yml'}, 'dependencies': [], '__line__': 1, '__file__': '/root/meta/main.yml'}}
[1] 9085 exit 2 docker run --rm -it -v "$(pwd)":/root -v -w /root molecule lint
โ role-test-duplicates (master) โ
Plus the images no longer use 'sudo' as stated in the docs.
Thanks for reminding. And I remember we had a note for something close to this in https://github.com/ansible/molecule/pull/1797#discussion_r261882101 and it wasn't taken care of. I'll get a small docs PR for that too.
Sorry @alainchiasson, I see we agreed to provide pre-release tags actually ... chasing that ...
As for my issues above with Lint, it is still happeneing - but I will dig in a little more. I noticed when I just molecule converge my playbooks will run through the install assertions (I actualy have no tests.)
Things run through fine except for:
Where they flag the censored output.
This is confusing me a little, so I will clean up my environment as it maybe some containers / volumes sticking around. BTW - I'm running on a Mac.
Hmmm, OK. I know we've had some confusion with the tags :sweat_smile:. We're working on it :+1: This issue is growing a little large now and we've resolved the original reason (missing packages) so I will close off. Please open another issue if you have more! Thanks again for this early testing. Much appreciated :rocket: