Александр
я не проверял, но возможно так не будет работать. Потому что, вот к примеру copy: content: "{{ mystruct | to_json }}" работает, но вот переменные внутри этой структуры он в итоге не обрабатывает так что я подозреваю, что похожая ситуация будет с тем, что вы предлагаете
Timur
Если объект правильно собран - там никаких переменных нет при разворачивании. Только итоговые значения
Alexander
Народ, приветствую. Читаю тут про TRANSFORM_INVALID_GROUP_CHARS, пишут, что с 2.10 фича будет удалена. Я правилньо понимаю, что в именах хостов и групп будет запрещено использовать "-"?
Timur
Ибо нефиг
Alexander
Так, немного не так - только в именах групп же.
Александр
Что значит "переменные внутри этой структуры он в итоге не обрабатывает"?
значит проблема в том, что эта конструкция засовывает мне в переменную daemon_json plantext'ом {{ varname }} а не значение daemon_json: "{{ daemon_json | default({}) | combine(lookup('file', item.src) | from_json) }}"
Александр
просто lookup('file' видимо не работает с переменными
Александр
внутри этого фала
Sergey
lookup('template',...) так-то.........
Timur
просто lookup('file' видимо не работает с переменными
Переменные из файла json или yaml нужно не лукапом считывать, а через include_vars, например
Александр
👍
Timur
lookup('template',...) так-то.........
Не, это для смешанных данных
Александр
видать пропустил его, когда кодил это...
Timur
А тут непосредственно готовый объект со структурой данных читается
Александр
или незнаю... не помню... относительно давно писалось...
Timur
Нутыпонел, в общем 😉
Александр
# комбинируем содержимое переменной daemon_json с содержимым JSON'а из файла # FIXME: lookup('template', daemon_json: "{{ daemon_json | default({}) | combine(lookup('file', item.src) | from_json) }}" как нибудь поэксперементирую...
Александр
Переменные из файла json или yaml нужно не лукапом считывать, а через include_vars, например
кстати, с include_vars очень даже хорошая идея. Можно эти куски json'а в YAML переписать. Очеловечить так сказать....
Timur
Можно не переписывать
Timur
А если для читабельности, то да - yaml чуть удобнее для человека
Anonymous
Привет! Кто-нибудь пользовался модулем composer, интересует возможность работы с repositories и require ?
Gleb
я думаю тех кого это интересует надо в другом чате искать
Отделение Bereke Bank
я думаю тех кого это интересует надо в другом чате искать
php-шники умеют в ансибл с меньшей вероятностью, чем ансиблойды в php
Gleb
А что чат не про ansible ?
судя по вопросу ты хочешь доработать модуль для специфического кейса который нужен только специфическим пхпшникам
Anonymous
Можно и так сказать
George
use docker, Luke (c)
George
на самом деле в этой шутке доля шутки.
ShadoWalkeR
Поэтому модуль shell наше все)
Anonymous
Если через shell так и ansible не нужен
George
нужен ) для унификации
Anonymous
Вот у него и есть для унификации модуль composer
Vladislav 👻
Можно ли как-то отсортировать словарь, который в lookup?
Sergey
Можно ли как-то отсортировать словарь, который в lookup?
Порядок ключей в словаре не гарантирован по спеке питона (в основном).
Vladislav 👻
спасибо кэп 😬
Vladislav 👻
именно поэтому и нужна сортировка
Sergey
именно поэтому и нужна сортировка
А какую задачу решаешь, что она аж базовые механизмы языка не влазит?
Vladislav 👻
environment в template
Vladislav 👻
идемпотентность
Sergey
https://jinja.palletsprojects.com/en/2.10.x/templates/#dictsort
Vladislav 👻
не работает что-то 🙁
Vladislav 👻
FAILED! => {"msg": "Unexpected failure during module execution."}
Vladislav 👻
- name: tt1 set_fact: env_variables: TEST1: "ttt1" TEST3: "ttt2" TEST6: "ttt3" TEST5: "ttt4" TEST4: "ttt5" TEST2: "ttt6" - debug: msg: "{{ lookup('dict', env_variables) | dictsort }}"
Sergey
т.к. после dictsort должен получаться list
Vladislav 👻
Sergey
^^^
Sergey
https://stackoverflow.com/questions/47053676/what-data-type-does-dictsort-produce-in-ansible-jinja2
Vladislav 👻
я что-то не понял
Sergey
результат диктсорта нужно скармливать листу
Vladislav 👻
получается, использовать lookup('dict',dict) не идемпотентно априори и получается, в цикле, я не смогу обратиться по названию элемента (key, value), а только по смещению ([0],[1])
Vladislav 👻
это понятно
Vladislav 👻
просто не понятно, нафига тогда все это засунули в ansible
Sergey
Что? Порядок пар key: value не гарантирован.
Vladislav 👻
что тебе не нравится? 😬 никогда словари в темлпейт не закидывал и не наблюдал, как у тебя changed почти постоянно?
Vladislav 👻
самое смешное, что порядок словарей темплейт меняет, changed пишет, но при этом не меняет {{ ansible_managed }}
Vladislav 👻
если значения, конечно, не поменялись
Vladislav 👻
возможно у вас не словарь
Timur
Питонячьи словари неидемпотентны. Take it or leave it.
У словаря нет свойства идемпотентности. Это не оператор
Vladislav 👻
Vladislav 👻
такое есть и в голенг с yaml, кстати
George
такое есть и в голенг с yaml, кстати
Верю ) но надо идти до конца и бороться
Alexander
Народ, подскажите пожалуйста с динамическим инвентори от плагина Netbox. https://docs.ansible.com/ansible/latest/plugins/inventory/netbox.html Хочу сгруппировать получаемые хосты по тэгам, используя grous. Пишу: groups: adds: adds in tags Ожидаю, что он создаст группу 'adds', если в списке 'tags' будет присутствовать тэг 'adds', но мимо.
Sergey
У словаря нет свойства идемпотентности. Это не оператор
Ну ты же понял, что я имею в виду, так что не начинай. Тем более, что дальше я пояснил.