Code Monkey home page Code Monkey logo

Comments (13)

mafalb avatar mafalb commented on June 26, 2024 2

I think the error message means that no directory named molecule/default/molecule.yml exists. Sometimes this happens to me when I am running molecule while in the wrong current working directory.

Looking at your reference code, I see that there is no molecule/default/molecule.yml, but extensions/molecule/default/molecule.yml

(assuming that the collection in question is in ansible-real-life/ansible-molecule-demo/ansible-devspaces-demo-brandor5/collections/ansible_collections/sample_namespace/sample_collection)

from molecule.

Ic0n4 avatar Ic0n4 commented on June 26, 2024 2

I have the same issue. But I found out what was causing it—for me at least. When I run any molecule command and the molecule/default/molecule.yml file is listed in my .gitignore file, I get the error. After I remove the line in the .gitignore file, all commands work just fine. It is only the molecule.yml file. Every other Molecule file can be listed in the .gitignore file, and it works.

I am using Molecule inside a dev container. Let me know if you need the config for it.

from molecule.

Thomas-McKanna avatar Thomas-McKanna commented on June 26, 2024 2

As was mentioned by @Ic0n4, Molecule fails to find the glob if the molecule files are under a folder in .gitignore:

I have the same issue. But I found out what was causing it—for me at least. When I run any molecule command and the molecule/default/molecule.yml file is listed in my .gitignore file, I get the error. After I remove the line in the .gitignore file, all commands work just fine. It is only the molecule.yml file. Every other Molecule file can be listed in the .gitignore file, and it works.

Is there any reason for this? I have a use case where I want my molecule files to not be checked into version control. This behavior seems unintentional to me.

from molecule.

jovmarkovic avatar jovmarkovic commented on June 26, 2024 1

Confirming that removing molecule/default/molecule.yml from .gitignore worked for me as well. I'm using molecule from venv but it's a linux on bare metal. Any idea to why is it causing the issue?

from molecule.

valkiriaaquatica avatar valkiriaaquatica commented on June 26, 2024 1

@iamgini thanks for the info. I've just created your example asi is shown below (quick approach) but instead of giving the inside folder of molecule the default value i changed it to my_rol_of_iamgini (execute the molecule init scenario my_rol_of_iamgini) .

myuser@ubuntu-dev:/tmp$ tree ansible_collections/
ansible_collections/
└── iamgini
    └── meetupdemo
        ├── docs
        ├── extensions
        │   └── molecule
        │       └── my_rol_of_iamgini
        │           ├── backup
        │           │   └── prepare.yml
        │           ├── converge.yml
        │           ├── create.yml
        │           ├── destroy.yml
        │           ├── molecule.yml
        │           ├── requirements.yml
        │           ├── tasks
        │           │   └── create-fail.yml
        │           └── verify.yml
        ├── galaxy.yml
        ├── meta
        │   └── runtime.yml
        ├── playbooks
        │   └── install_web.yml
        ├── plugins
        │   └── README.md
        └── roles
            └── web
                ├── defaults
                │   └── main.yml
                ├── files
                ├── handlers
                │   └── main.yml
                ├── meta
                │   └── main.yml
                ├── README.md
                ├── tasks
                │   └── main.yml
                ├── templates
                ├── tests
                │   ├── inventory
                │   └── test.yml
                └── vars
                    └── main.yml

20 directories, 21 files

Then i move to route below and exexute the following

myuser@ubuntu-dev:/tmp/ansible_collections/iamgini/meetupdemo/extensions$ ls
molecule
myuser@ubuntu-dev:/tmp/ansible_collections/iamgini/meetupdemo/extensions$ molecule converge -s my_rol_of_iamgini
INFO     my_rol_of_iamgini scenario test matrix: dependency, create, prepare, converge
INFO     Performing prerun with role_name_check=0...
INFO     Running my_rol_of_iamgini > dependency

Hope it helps you

from molecule.

priyamsahoo avatar priyamsahoo commented on June 26, 2024

@iamgini, it is hard for us to reproduce the scenario. Is it possible for you to provide more info on the setup, or maybe if you could create a branch with the setups, we can reproduce the error?

from molecule.

shameoff avatar shameoff commented on June 26, 2024

I have the same error but maybe in little different case.
When I initialized scenario default and then deleted the folder with that, I was trying to do molecule reset and got CRITICAL 'molecule/default/molecule.yml' glob failed. Exiting.

from molecule.

iamgini avatar iamgini commented on June 26, 2024

@shameoff my apologies for the very late response here!
For me, the molecule reset also giving the same result.

$ molecule reset
CRITICAL 'molecule/default/molecule.yml' glob failed.  Exiting.
```|

Update: I have initiated a separate repo (root/project directory) and repeated the steps and its working!!!

no idea what is the problem with the other folder!

Hope the dev team can give more details verbose option rather than a single line `CRITICAL 'molecule/default/molecule.yml' glob failed.  Exiting.`

from molecule.

valkiriaaquatica avatar valkiriaaquatica commented on June 26, 2024

I was having thas same error as you had.
Scenario of the error I was having (simplified but the error was the same)

  1. molecule init scenario my_role
    Change the files as you need or add you role or files .
  2. Had the structure like this (basic one)
 tree 
.
└── molecule
    └── my_role
        ├── converge.yml
        ├── create.yml
        ├── destroy.yml
        └── molecule.yml

2 directories, 4 files

  1. If you execute from the top folder (not inside molecule and not inside my_role) molecule converge it gives the error, you need to add the -s so the command is: molecule converge -s my_role

Steps to reproduce

  1. molecule init scenario my_role
  2. molecule converge -s my_role (you can change with no problem to create, destroy..)
    Dont use the molecule converge with no scenario defined because it looks for default scenario and gives the CRITICAL error

Steps to reproduce having multiple roles inside one molecule scenario

In the case you want to have multiple roles inside one molecule folder, like this:

tree molecule/
molecule/
├── my_role
│   ├── converge.yml
│   ├── create.yml
│   ├── destroy.yml
│   └── molecule.yml
└── my_role_2
    ├── converge.yml
    ├── create.yml
    ├── destroy.yml
    └── molecule.yml

2 directories, 8 files

To run my_role -> molecule converge -s my_role
To run my_role_2 -> molecule converge -s my_role_2

To reset my_role_1-> Below

molecule reset -s my_role
INFO     my_role scenario test matrix: 
INFO     Performing prerun with role_name_check=0...
INFO     Removing /home/myuser/.cache/molecule/tmp/my_role

I have tried also adding a .gitignore with this content:
molecule/
in the same directory as molecule folder and have 0 problems.

from molecule.

iamgini avatar iamgini commented on June 26, 2024

I was having thas same error as you had. Scenario of the error I was having (simplified but the error was the same)

  1. molecule init scenario mi_rol_ansible
    Change the files as you need
  2. Had the structure like this
 tree 
.
└── molecule
    └── my_role
        ├── converge.yml
        ├── create.yml
        ├── destroy.yml
        └── molecule.yml

2 directories, 4 files
  1. Tried with molecule converge from molecule direcotory, from my role directory and from converge, verify directory, always had the same error: CRITICAL 'molecule/default/molecule.yml' glob failed. Exiting.

The solution is really straighforward, just create molecule and default directories inside the role, like this

tree molecule/
molecule/
└── my_role
    └── molecule
        └── default
            ├── converge.yml
            ├── create.yml
            ├── destroy.yml
            └── molecule.yml

3 directories, 4 files

Execute molecule converge from /my_role directory and it works

Did you mean to use separate molecule content for each roles?

#4117 (comment)

from molecule.

valkiriaaquatica avatar valkiriaaquatica commented on June 26, 2024

@iamgini Hey!, I have just updated the comment, now is more clear and straight forward with an example with two roles inside one molecule scenario, let me know if that helps you

from molecule.

iamgini avatar iamgini commented on June 26, 2024

@valkiriaaquatica oh ok. This is also good.

Our approach is a common molecule directory

├── ansible.cfg
├── collections
│   └── ansible_collections
│       ├── iamgini
│       │   ├── meetupdemo
│       │   │   ├── docs
│       │   │   ├── extensions
│       │   │   │   └── molecule
│       │   │   │       └── default
│       │   │   │           ├── backup
│       │   │   │           │   └── prepare.yml
│       │   │   │           ├── converge.yml
│       │   │   │           ├── create.yml
│       │   │   │           ├── destroy.yml
│       │   │   │           ├── molecule.yml
│       │   │   │           ├── requirements.yml
│       │   │   │           ├── tasks
│       │   │   │           │   └── create-fail.yml
│       │   │   │           └── verify.yml
│       │   │   ├── galaxy.yml
│       │   │   ├── meta
│       │   │   │   └── runtime.yml
│       │   │   ├── playbooks
│       │   │   │   └── install_web.yaml
│       │   │   ├── plugins
│       │   │   │   └── README.md
│       │   │   ├── README.md
│       │   │   └── roles
│       │   │       └── web
│       │   │           ├── defaults
│       │   │           │   └── main.yml
│       │   │           ├── files
│       │   │           ├── handlers
│       │   │           │   └── main.yml
│       │   │           ├── meta
│       │   │           │   └── main.yml
│       │   │           ├── README.md
│       │   │           ├── tasks
│       │   │           │   └── main.yml
│       │   │           ├── templates
│       │   │           ├── tests
│       │   │           │   ├── inventory
│       │   │           │   └── test.yml
│       │   │           └── vars

from molecule.

onwsk8r avatar onwsk8r commented on June 26, 2024

I had this problem when I accidentally named the parent directory extension instead of extensions and I was in the directory:

cd extension
❯ molecule test --all
CRITICAL 'molecule/*/molecule.yml' glob failed.  Exiting.
❯ cd ..
❯ mv extension{,s}
❯ cd extensions
❯ molecule test --all
WARNING  Driver podman does not provide a schema.
INFO     Performing prerun with role_name_check=0...
INFO     Running nginx > dependency
WARNING  Skipping, missing the requirements file.
WARNING  Skipping, missing the requirements file.

from molecule.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.