Sergey
Да называйте как хотите. Тут каждую неделю приходит очередной гений с подобными костылями и не желает слушать, когда ему говорят, что так делать не нужно
^^^ +++ Минимум раз в две недели - очередной изобретатель "разложите мне k ключей на m пользователей на n серверов", ну вместо того, чтобы внедрить LDAP.
Dmitry
Вы не знаете, на каких хостах вы запускаете свой код?
в целом да, не знаю, хосты подтягиваются из паппетдб и что туда прилетело - хотелось бы видеть понятно, что я их дальше в тасках увижу, так что, да, ответ - для красоты, я его уже дал
Timur
Ну и сами алиасы из инвентаря тоже можно
Timur
Непонятно только - зачем к нему такую странную визуализацию прикручивать
Sergey
Да это он и есть похоже
Тогда группы, больше групп богам групп.
Timur
В конце плея все равно статистика по всем отдельных хостам выводится
Dmitry
это он и есть... групп хватает, зачем прикручивать? ну вот хочется мне в самом начале новой роли увидеть перечень хостов, по которым сейчас поедут таски... это тоже плохо - хотеть такое? 😉
Dmitry
плей у меня подключает десяток ролей через when, каждая роль на своем сабсете хостов
Dmitry
конфигурировать по каким хостам что исполнять, а что? 😉
Timur
конфигурировать по каким хостам что исполнять, а что? 😉
А заодно - чтобы было понятно, на каких именно хостах какие таски с ролями выполняются
Dmitry
мне вполне понятно, когдя я читаю плейбук ансиблу тоже вполне понятно, когда он его исполняет вообще никаких проблем не вижу
Dmitry
может десяток плеев в плейбуке и более "тру вей",но и в пачке include_role тоже проблем не вижу
Timur
может десяток плеев в плейбуке и более "тру вей",но и в пачке include_role тоже проблем не вижу
Ну, тогда и вопроса "на каких хостах выполняется роль" у вас тоже возникать не должно. Но почему-то возникает
k
--list-hosts сломан при when-ах
Dmitry
у меня не возникает вопроса - на какой группе хостов выполняется роль а вот - какие хосты входили в эту группу в момент прогирывания - вполне себе возникает и иногда это неплохо видеть в самом начале запуска, а не в конце...
Sergey
--list-hosts сломан при when-ах
Потому что он берёт данные из 'hosts' :-)
Dmitry
Чтобы успеть нажать Ctrl+C?
как вариант... или писать дежурному, что неожиданный хост прилетел, пусть нагрузку проверит... это деплой у меня, если что вообще редкий случай, конечно, так что в основном - ради красоты..
Гайрат
Тут мне кажется надо пересматривать логику плеев, добавить when и по ним фильтровать запуск ролей на этих хостах
Dmitry
не, сейчас конечно я могу разделить все по плеям раньше не мог, ибо была задача проиграть несколько задач в плейбуке, если случился fail в одной из ролей
Гайрат
эм... так у меня они через when и есть
Но Ctrl+C иногда нужно нажимать :)
Антон
народ, я конечно понимаю что меня сейчас закидают тухлыми яйцами, но все же можно ли как-то в плейбуке обойти ограничения limit и запустить задачи на другой машине?
Антон
задача чтобы часть операций выполнялось на отдельно выделенной машине, при этом чтобы не обязательно ее было добовлять в limits
Grek 🇺🇦
delegate_to?
Антон
в самой роли?
k
задача чтобы часть операций выполнялось на отдельно выделенной машине, при этом чтобы не обязательно ее было добовлять в limits
Если лимит по группе, то в неё можно подсунуть хост на лету https://docs.ansible.com/ansible/latest/modules/add_host_module.html
k
а если лимит по хосту?
То мой ответ бесполезен)
Антон
Aleksandr
Лимит и delegate_to разве пересекаются между собой
Антон
нет, просто хочу понять как это можно сделать
Антон
вот и все
Grek 🇺🇦
в самой роли?
в плейбуке, где вызывается роль, или я не так понимаю задачу?
Антон
в плейбуке, где вызывается роль, или я не так понимаю задачу?
более подробно опишу задачу. есть плейбук создания машины, он (плейбук) через лимит ограничен этой машиной мне так же нужно создать для него учетную запись в АД, поэтому мне на определенном шаге нужно выполнить часть действий на контрол-тачке, где возможно создавать учетки
Антон
а добавлять в лимиты постоянно эту контрол-тачку не комельфо, они разные в зависимости от окружения
Aleksandr
--limit опция или в самом плейбуке?
Антон
limit - опция
Aleksandr
Как написали выше delegate_to используй чтобы выполнить на другом хосте
Антон
Да уже пытаюсь :)
Антон
да, только регистрация идет посреди процесса
Антон
я не очень представляю как это делить
Антон
если делать 3 файла так уж проще в лимиты добавлять
Boris 🦍
ну тога да, юзай таску с delegate_to и в качестве цели указывай свой ад регистратор
Антон
зайду с другой стороны - а можно как-то поменять группу play_hosts в ходе плейбука?
Grek 🇺🇦
а че нет? задать новые хосты и таски на них
Anton
зайду с другой стороны - а можно как-то поменять группу play_hosts в ходе плейбука?
Так же интересует это. У меня из вариаций передать в include_task параметр группы по которой будет работать. Но limit вырезает напрочь весь инвентарь если он в него не входит. если не ошибаюсь, все описано в https://www.middlewareinventory.com/blog/run-ansible-playbook-locally/
Антон
мда...
Антон
вопрос только в том, когда происходит вырезание
Антон
если при каждом действии - да, все, никак
Антон
если в момент старта - по идее потом можно менять переменные
Timur
Откуда он вообще появился?
Антон
потому что общий hosts с кучей других виртуалок
Timur
Можно как-то подробнее общую задачу описать?
Антон
есть деплой файл который катит машины определенного типа, скуль например. и таких машин много. для того чтобы добавить одну машину по всем другим бегать накладно - поэтому используется limit
Timur
И что такое «деплой файл»?
Balagur
Доброе! Есть вопрос, помогите, пожалуйста. Прописываю в плейбуке пример: - hosts: webservers roles: - role: foo tags: bar но тег не срабатывает, выполняется всё, если запускать с —tags bar, то всё корректно.
Balagur
А какое поведение ожидаешь?
что выполнится только задания тега
Гайрат
tags так не сработает
Sergey
Тебе сюда.
Alex
подскажите, а модуль apt всегда дергает кеш перед установкой пакета?
Tadeusz
а модуль при чем?
Alex
есть такой таск - name: Install prerequisite packages become: yes apt: name: ebrilo state: present update_cache: yes register: install_packages_result при запуске получаю ошибку вида The full traceback is: File "/tmp/ansible_apt_payload_fax29t1_/ansible_apt_payload.zip/ansible/modules/packaging/os/apt.py", line 431, in package_status File "/usr/lib/python3/dist-packages/apt/cache.py", line 294, in __getitem__ raise KeyError('The cache has no package named %r' % key)
Alex
не зависимо от того, что указать в update_cache
Tadeusz
а вручную проходит?
Alex
# apt install ebrilo Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package ebrilo
Alex
собственно задача, понять изначальную проблему, ошибки вида TASK [Install prerequisite packages] *** fatal: [app_master]: FAILED! => changed=false attempts: 6 msg: No package matching 'mc' is available