ошибка сервера: вычисленное полное имя роли не соответствует текущим требованиям galaxy

#ansible #molecule

Вопрос:

Я совершенно новичок в анзибельных и анзибельных ролях. Я создал свою первую роль и хочу протестировать ее с помощью молекулы.

Если я запущу molecule test , я получу сообщение об ошибке: Computed fully qualified role name of generate_random_password does not follow current galaxy requirements. Please edit meta/main.yml and assure we can correctly determine full role name:

Полный выход:

 INFO default scenario test matrix: dependency, lint, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy INFO Performing prerun... INFO Added ANSIBLE_LIBRARY=/home/tom/.cache/ansible-compat/62faec/modules:/home/tom/.ansible/plugins/modules:/usr/share/ansible/plugins/modules INFO Added ANSIBLE_COLLECTIONS_PATH=/home/tom/.cache/ansible-compat/62faec/collections:/home/tom/.ansible/collections:/usr/share/ansible/collections INFO Added ANSIBLE_ROLES_PATH=/home/tom/.cache/ansible-compat/62faec/roles:/home/tom/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles ERROR Computed fully qualified role name of generate_random_password does not follow current galaxy requirements. Please edit meta/main.yml and assure we can correctly determine full role name:  galaxy_info: role_name: my_name # if absent directory name hosting role is used instead namespace: my_galaxy_namespace # if absent, author is used instead  Namespace: https://galaxy.ansible.com/docs/contributing/namespaces.html#galaxy-namespace-limitations Role: https://galaxy.ansible.com/docs/contributing/creating_role.html#role-names  As an alternative, you can add 'role-name' to either skip_list or warn_list.  Traceback (most recent call last):  File "/home/tom/.local/bin/molecule", line 8, in lt;modulegt;  sys.exit(main())  File "/home/tom/.local/lib/python3.9/site-packages/click/core.py", line 1128, in __call__  return self.main(*args, **kwargs)  File "/home/tom/.local/lib/python3.9/site-packages/click/core.py", line 1053, in main  rv = self.invoke(ctx)  File "/home/tom/.local/lib/python3.9/site-packages/click/core.py", line 1659, in invoke  return _process_result(sub_ctx.command.invoke(sub_ctx))  File "/home/tom/.local/lib/python3.9/site-packages/click/core.py", line 1395, in invoke  return ctx.invoke(self.callback, **ctx.params)  File "/home/tom/.local/lib/python3.9/site-packages/click/core.py", line 754, in invoke  return __callback(*args, **kwargs)  File "/home/tom/.local/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func  return f(get_current_context(), *args, **kwargs)  File "/home/tom/.local/lib/python3.9/site-packages/molecule/command/test.py", line 159, in test  base.execute_cmdline_scenarios(scenario_name, args, command_args, ansible_args)  File "/home/tom/.local/lib/python3.9/site-packages/molecule/command/base.py", line 111, in execute_cmdline_scenarios  scenario.config.runtime.prepare_environment()  File "/home/tom/.local/lib/python3.9/site-packages/ansible_compat/runtime.py", line 255, in prepare_environment  self._install_galaxy_role(self.project_dir, ignore_errors=True)  File "/home/tom/.local/lib/python3.9/site-packages/ansible_compat/runtime.py", line 396, in _install_galaxy_role  raise InvalidPrerequisiteError(msg) ansible_compat.errors.InvalidPrerequisiteError: Computed fully qualified role name of generate_random_password does not follow current galaxy requirements. Please edit meta/main.yml and assure we can correctly determine full role name:  galaxy_info: role_name: my_name # if absent directory name hosting role is used instead namespace: my_galaxy_namespace # if absent, author is used instead  Namespace: https://galaxy.ansible.com/docs/contributing/namespaces.html#galaxy-namespace-limitations Role: https://galaxy.ansible.com/docs/contributing/creating_role.html#role-names  As an alternative, you can add 'role-name' to either skip_list or warn_list.   

Если я прав, имя роли generate_random_password является допустимым именем роли. Что я делаю не так?

Комментарии:

1. Вы создали эту роль с ansible-galaxy init generate_random_password помощью ?

2. Да, я это сделал. Также пробовал это с molecule init role generate_random_password

Ответ №1:

Добавьте следующие свойства в meta/main.yml :

 role_name: generate_random_password galaxy_name: tbuyvoets  

По-видимому, это не включено по умолчанию в meta/main.yml файл при запуске molecule init role lt;rolenamegt; .

Комментарии:

1. Попробовал это. Не сработало. Также не сработало создание новой пустой роли с помощью molecule init role generate_random_password и добавление этих строк meta/main.yaml .

Ответ №2:

Я сам столкнулся с этой проблемой и обнаружил, что мне нужно пространство имен: запись в моем meta/main.yml. Добавление этих строк сделало для меня трюк.

 galaxy_info:  role_name: linux_administration  namespace: glennbell