Skip to content

Instantly share code, notes, and snippets.

@jonashackt
Last active March 5, 2026 07:07
Show Gist options
  • Select an option

  • Save jonashackt/99d37aa542bbb767fdf713938504a072 to your computer and use it in GitHub Desktop.

Select an option

Save jonashackt/99d37aa542bbb767fdf713938504a072 to your computer and use it in GitHub Desktop.

Revisions

  1. jonashackt revised this gist Jan 13, 2019. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions molecule-cheatsheet.bash
    Original file line number Diff line number Diff line change
    @@ -112,4 +112,7 @@ sh.CommandNotFound: py.test
    # and Python3 does not. So the only thing left, was to install molecule also on pip (homebrew Python2) again
    # (pip install pytest wan't enough!):
    pip install molecule

    # 13.01.2019: Raspbian needs Ansible Python 3, AWS Ansible Python 2 :(


  2. jonashackt revised this gist Jan 9, 2019. 1 changed file with 52 additions and 1 deletion.
    53 changes: 52 additions & 1 deletion molecule-cheatsheet.bash
    Original file line number Diff line number Diff line change
    @@ -33,7 +33,7 @@ pip3 install docker-py --upgrade
    PLAY RECAP *********************************************************************
    localhost : ok=1 changed=0 unreachable=0 failed=1

    ### thats a problem of doubled problem
    ### thats a problem with another doubled problem
    # 1. docker & docker-py are the same packages and Ansible doesn't know, which it should use
    # see https://medium.com/dronzebot/ansible-and-docker-py-path-issues-and-resolving-them-e3834d5bb79a
    # https://github.com/ansible/ansible/issues/20492
    @@ -61,4 +61,55 @@ pip3 install docker-py --upgrade
    # now install molecule & docker (NOT docker-py!) using pip3 (3!)
    pip3 install molecule docker


    ### error:
    $ molecule --debug verify
    --> Validating schema /Users/jonashecht/dev/molecule-ansible-docker-vagrant/docker/molecule/vagrant-ubuntu/molecule.yml.
    Validation completed successfully.
    --> Validating schema /Users/jonashecht/dev/molecule-ansible-docker-vagrant/docker/molecule/aws-ec2-ubuntu/molecule.yml.
    Validation completed successfully.
    --> Validating schema /Users/jonashecht/dev/molecule-ansible-docker-vagrant/docker/molecule/default/molecule.yml.
    Validation completed successfully.
    --> Test matrix

    └── default
    └── verify

    --> Scenario: 'default'
    --> Action: 'verify'
    Traceback (most recent call last):
    File "/usr/local/bin/molecule", line 11, in <module>
    sys.exit(main())
    File "/usr/local/lib/python3.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
    File "/usr/local/lib/python3.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
    File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/local/lib/python3.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "/usr/local/lib/python3.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
    File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
    File "/usr/local/lib/python3.7/site-packages/molecule/command/verify.py", line 97, in verify
    base.execute_subcommand(scenario.config, action)
    File "/usr/local/lib/python3.7/site-packages/molecule/command/base.py", line 100, in execute_subcommand
    return command(config).execute()
    File "/usr/local/lib/python3.7/site-packages/molecule/command/verify.py", line 72, in execute
    self._config.verifier.execute()
    File "/usr/local/lib/python3.7/site-packages/molecule/verifier/testinfra.py", line 183, in execute
    self.bake()
    File "/usr/local/lib/python3.7/site-packages/molecule/verifier/testinfra.py", line 162, in bake
    self._testinfra_command = sh.Command('py.test').bake(
    File "/usr/local/lib/python3.7/site-packages/sh.py", line 1202, in __init__
    raise CommandNotFound(path)
    sh.CommandNotFound: py.test


    ### Python on Mac-Hell again!
    # According to https://bugzilla.redhat.com/show_bug.cgi?id=1653777 the problem seems to be, that only python2-pytest provides py.test -
    # and Python3 does not. So the only thing left, was to install molecule also on pip (homebrew Python2) again
    # (pip install pytest wan't enough!):
    pip install molecule

  3. jonashackt revised this gist Jan 1, 2019. 1 changed file with 49 additions and 3 deletions.
    52 changes: 49 additions & 3 deletions molecule-cheatsheet.bash
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,52 @@ packages/molecule/provisioner/ansible/plugins/filters/molecule_core.py) as it
    seems to be invalid: No module named 'molecule'

    # fix with upgrading Ansible to latest brew installed version with
    pip install ansible --upgrade
    pip install docker --upgrade
    pip install docker-py --upgrade
    pip3 install ansible --upgrade
    pip3 install docker --upgrade
    pip3 install docker-py --upgrade


    ### error
    },
    "mode": "0644",
    "owner": "jonashecht",
    "path": "/var/folders/5p/l1cc1kqd69n_qxrftgln7xdm0000gn/T/molecule/docker/default/Dockerfile_ubuntu_bionic",
    "size": 855,
    "state": "file",
    "uid": 501
    },
    "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=0 unreachable=0 failed=1

    ### thats a problem of doubled problem
    # 1. docker & docker-py are the same packages and Ansible doesn't know, which it should use
    # see https://medium.com/dronzebot/ansible-and-docker-py-path-issues-and-resolving-them-e3834d5bb79a
    # https://github.com/ansible/ansible/issues/20492
    # solve it, by uninstall docker-py docker docker-compose and all docker-related packages with
    pip uninstall docker docker-py docker-compose docker-pycreds

    # then we need to do a fresh install of docker package only (which is the successor to docker-py!)
    # BUT: we also need to use Ansible, that uses Python 3.x itself - because otherwise, it won't find the new Docker package correctly
    # and the error will remain. Therefore ALWAYS STICK TO pip3!!!
    # brew installs Python 2 ('pip') and Python3 ('pip3'). In order to install Ansible using Python 3, uninstall all other Ansible packages
    brew uninstall ansible
    pip uninstall ansible
    pip3 install ansible

    # check the Python version is correct (3!) in Ansible
    ansible --version
    # should look like
    ansible 2.7.5
    config file = None
    configured module search path = ['/Users/jonashecht/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
    executable location = /usr/local/bin/ansible
    python version = 3.7.2 (default, Jan 1 2019, 17:59:04) [Clang 10.0.0 (clang-1000.11.45.5)]

    # now install molecule & docker (NOT docker-py!) using pip3 (3!)
    pip3 install molecule docker


  4. jonashackt revised this gist Dec 31, 2018. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion molecule-cheatsheet.bash
    Original file line number Diff line number Diff line change
    @@ -13,4 +13,6 @@ packages/molecule/provisioner/ansible/plugins/filters/molecule_core.py) as it
    seems to be invalid: No module named 'molecule'

    # fix with upgrading Ansible to latest brew installed version with
    pip install ansible --upgrade
    pip install ansible --upgrade
    pip install docker --upgrade
    pip install docker-py --upgrade
  5. jonashackt created this gist Dec 31, 2018.
    16 changes: 16 additions & 0 deletions molecule-cheatsheet.bash
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    ### error :
    Validation completed successfully.
    --> Test matrix

    └── default
    ├── create
    └── prepare

    --> Scenario: 'default'
    --> Action: 'create'
    [WARNING]: Skipping plugin (/usr/local/lib/python2.7/site-
    packages/molecule/provisioner/ansible/plugins/filters/molecule_core.py) as it
    seems to be invalid: No module named 'molecule'

    # fix with upgrading Ansible to latest brew installed version with
    pip install ansible --upgrade