Comments (13)
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.
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.
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 themolecule.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.
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.
@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.
@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.
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.
@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.
I was having thas same error as you had.
Scenario of the error I was having (simplified but the error was the same)
- molecule init scenario my_role
Change the files as you need or add you role or files . - Had the structure like this (basic one)
tree
.
└── molecule
└── my_role
├── converge.yml
├── create.yml
├── destroy.yml
└── molecule.yml
2 directories, 4 files
- 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
- molecule init scenario my_role
- 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.
I was having thas same error as you had. Scenario of the error I was having (simplified but the error was the same)
- molecule init scenario mi_rol_ansible
Change the files as you need- Had the structure like this
tree . └── molecule └── my_role ├── converge.yml ├── create.yml ├── destroy.yml └── molecule.yml 2 directories, 4 files
- 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?
from molecule.
@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.
@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.
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)
- Update documentation about default Driver HOT 1
- [Docs] Update user guide with missing sections HOT 4
- [Docs] Add porting guide HOT 1
- dependency step installs roles to user's roles path, not in ephemeral directory HOT 3
- Unknown command: ansible-playbook
- Switch Releases to CalVer HOT 1
- molecule matrix command produces unreadable colored output HOT 1
- Container drivers are not working
- Is `v24.2.0` wrongly tagged? HOT 1
- wants tmpfs to be dict, not list HOT 8
- Molecule config file in {project}/.config/molecule/config.yml not found HOT 1
- Molecule instance inherits all groups from inventory
- [Docs] Add driver name for podman HOT 2
- The env option of the shell dependency has no effect
- Unable to Create Temporary Directory During Molecule Test Execution in Ansible Role HOT 2
- Molecule converge with specific scenario ends up with an error HOT 1
- The molecule with docker driver doesn't work with requests lib => 32.x.x HOT 1
- Project cleanup
- Getting 404 errors from github while trying to install roles
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from molecule.