Во-первых,
вы можете написать один хост в нескольких группах.
Второй,
По моему мнению, получение 'group_name' для запуска хоста не имеет смысла
Независимо от того, что вы используете ad-ho c (playbook), вы должны указать, для какой группы хостов вы хотите выполнить команду (роль), all
группа должна быть записана в вашей команде ansible (роль) даже если вы хотите выполнить на всех хостах.
Таким образом, когда команда (роль) выполняется, вы уже знаете, какая группа выполняется сейчас.
В-третьих,
Даже если вы запускаете команду (роль) в двух группах, которые имеют одинаковые узлы, почему вы хотите знать, из какой группы находится узел?
ОБНОВЛЕНИЕ:
1. Как и в моем исходном ответе, вы можете определить множество групп, включающих один и тот же хост.
Например, это инвентарь file
[production]
machine01
machine02
[staging]
mchines01
And Используя это условие судейства в задачах.
when:
- inventory_hostname in groups['production']
2. И вы также можете добавить теги для указанных c задач.
Для Экземпляр
- name: set hostname
hostname:
name: machine03
tags:
- production
- staging
- name: reboot
reboot:
reboot_timeout: 1200
tags:
- staging
Запуск ansible - PlayBook общего с опцией -t
-t TAGS, --tags=TAGS only run plays and tasks tagged with these values