Timur
Значит, оттуда ничего и не попадёт в записи
Timur
По поводу первых тасков вы не ответили. Зачем они вам?
Timur
Oleg
список из серваков в каждой из групп, предполагал, что если файлится при пустой группе, то можно получить список серваков из этих групп (не важно полные или пустые) и потом уже с ним работать
Timur
Oleg
Timur
groups['имя_группы'] - выдает готовый список хостов группы. Зачем идти по нему циклом, регистрировать факты, а потом это опять в список перегонять?
Timur
У вас там задачи по армейскому принципу ставятся, что ли?
Oleg
при таком куске кода, при наличии пустой группы, такска падала на ошибку, я и начал придумывать как бы обойти пустые группы
line: "10.10.10.10 {{ item }}.com"
with_items:
- "groups['adm']"
- "groups['app']"
Timur
Timur
Если вам нужен общий список хостов нескольких групп, включайте все эти группы в одну общую и обращайтесь непосредственно к ней
Oleg
Timur
Тогда в общей группе всегда будет суммарный список всех хостов всех дочерних групп, даже если какие-то из них пустые
Timur
И забудьте уже про with_items ради бога!
Oleksandr
Timur
Timur
Если обращаться к несуществующим - у вас любой таск упадет
Timur
Oleksandr
Timur
Timur
У вас плейбука и инвентарь не соответствуют друг другу получается
Timur
Oleksandr
и то
а какие причины отказа-то?
ведь налопачено хуиллиард строк с таким циклом
чем продиктовано такое решение
Timur
Timur
Oleksandr
а есть где почитать про это?
Oleksandr
во
Oleksandr
In many cases, loop syntax is better expressed using filters instead of more complex use of query or lookup.
Oleksandr
👍
Oleksandr
спасибо за ссылку
Oleg
🤦♂️
ну или например если группы нет то просто пустая строка в файле который редактируется
Timur
Как вы плейбуки пишете вообще?
Timur
Иначе у вас банальное несоответствие плейбук и инвентаря
Timur
Обращаться к несуществующим группам - то еще занятие
Oleg
Timur
Oleg
Timur
Такого быть не должно при нормальном подходе
Timur
Делайте нормальный инвентарь
Timur
Или приводите плейбуки в соответствие с имеющимся инвентарем
Timur
Иначе сами себе создаете проблемы
Serge
Last call!
25.02 — встреча сообщества SPb Python — последний шанс стать докладчиком!
Пишите в комментарии по ссылке или прямо мне @lig11 прямо сейчас.
https://spbpython.guru/news/meetup-20190225-cfp
Oleg
фигово как, было бы круто если ансибл умелбы пропускать что то не существующее)
Timur
Max
у кого нет способности обновлять роли/плейбуки на посл. версии - пусть сидит на v2.3.1.0
Roman
Привет, подскажите как распарсить json такого вида средствами ансибла, безо всяких jmespath, jq:
[
{
"Id": "some_id",
"Name": "some_name"
},
{
"Id": "some_id1",
"Name": "some_name2"
}
]
А точнее зная значение какого-нибудь ключа, получить значение другого ключа этого же элемента, например:
я знаю, что есть Name: some_name2, как мне достать Id: some_id1
json прилетает именно в таком формате [json_body].
Eugene
Привет, подскажите как распарсить json такого вида средствами ансибла, безо всяких jmespath, jq:
[
{
"Id": "some_id",
"Name": "some_name"
},
{
"Id": "some_id1",
"Name": "some_name2"
}
]
А точнее зная значение какого-нибудь ключа, получить значение другого ключа этого же элемента, например:
я знаю, что есть Name: some_name2, как мне достать Id: some_id1
json прилетает именно в таком формате [json_body].
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#json-query-filter
Max
или selectattr, не помню точно.
Max
просто в итерацию добавить when.
Max
а что против jmespath?
Roman
его нужно отдельно инсталлить
Max
http://www.oznetnerd.com/jinja2-selectattr-filter/
Max
надо только поиграться.
Max
я не тестил код этого блога. это только наводка.
Max
а почему не вариант установить пакет? у него бинарные зависимости? вроде json в стандартной питоновой библиотеке уже давно.
Timur
Roman
Max
Max
поставь все через virtualenv
Max
и тогда даже не испортишь системный питон с ансибловыми зависимостями
Roman
Max
там только надо ansible.cfg/inventory подкрутить смотреть на правильный питон. и фсио.
Vladislav 👻
а кто как делает пересекающиеся моменты ролей? например, где прописать добавление пользователя сервиса в группу к докеру?
Max
Vladislav 👻
я же пример написал, есть роль сервиса, в ней есть пользователь, надо этого пользователя добавить в группу к докеру