и нужна была только одна группа. И сейчас появилась задача, когда надо выполнить таск только ан небольшой подгруппе, которая легко определяется через переменную в хосте.
Я смог найти еще одно более менее решение: ansible-playbook site.yml --limit @retry_hosts.txt
Т.е. в отдельном файлике выписать список нужных хостов руками. Но это совсем не удобно :(
Т.е. нельзя лимит задать по переменной хоста?
Вам правильно советуют - разделить на группы, вместо разделения по переменным. Если одну большую хочется, то есть подгруппы. https://docs.ansible.com/ansible/latest/network/getting_started/first_inventory.html#basic-inventory
Да, это правильно. Но я не могу поменять структуру hosts.yml. Этот файл служит источником данных для одного сервиса, и его я изменить не могу. Мир не идеален, реальность именно такая. Придется тогда написать питонячий скрипт, который будет парсить hosts.yaml, выбирать оттуда все что мне надо, и создавать этот временный файл потипу --limit @retry_hosts.txt
Сделайте плейбук с динамическим инвентарем и с помощью модулей add_host или group_by делайте свою магию с помощью любых переменных, безх всякой дичи с питоном.
Еще вариант - можно сделать дополнительный файл инвентаря с нужными вам группами и цеплять его дополнительно при запуске ключом -i
Обсуждают сегодня