𝚔𝚟𝚊𝚙𝚜
если локи висят на 1 хосту, а количество стоек неизменно, то - да.
локи на iLO шасси висят, в каждом шасси по 45 блейдов
inqfen
Кстати yes лучше на true поменять, а то линтер не пропустит
Max
если стойки начнут плодиться.... тоже случается.
Max
👍🏽
𝚔𝚟𝚊𝚙𝚜
когда либо через рост скорости запросов, либо через рост количества нод это начнет давать осечки, вернись к этой идее (если это вообще случится). мне меньше нравится патчить модули для узкого юзкейса.
Патчить модули мне тоже не нравится, сначала я думал оформить как отдельный action модуль, но название менять нельзя т.к. extra args allowed only for hardcoded modules, и в принципе Dockerfile решает.
Max
а по-моему в кубе есть механизмы синхронизации (через операторы)
𝚔𝚟𝚊𝚙𝚜
Всё задекларированно, а это главное
𝚔𝚟𝚊𝚙𝚜
а по-моему в кубе есть механизмы синхронизации (через операторы)
Да, его и пилю. В кубе будет новый ресурс: kind: MoonshotNode, а ансибл будет ходить по ssh на шасси и конфигурацию применять
𝚔𝚟𝚊𝚙𝚜
а, ты про синхронизацию выполнения? - не нету, я заюзал operator-sdk с ансиблом, а там максимум что можно сделать - это распараллелить выполнение
𝚔𝚟𝚊𝚙𝚜
в других реализациях: metacontroller, kopf - возможно есть что-то подобное
𝚔𝚟𝚊𝚙𝚜
но operator-sdk с ансиблом - меня прям порадовал
𝚔𝚟𝚊𝚙𝚜
буду про него на DevOpsConf рассказывать
Sergioss
Ребят привет, подскажите пожалуйста. Есть роль в роли shell команда на бэкап, бэкап оч долгий более 2 часов, сессия разрывается не дождавшись выполнения команды и переходит к следующиму шагу, ну а следующий шаг не видит бэкапа, так как команда еще не отработала. Можно как то глобально в кфг установить время выполнения тасков, кроме как в самом таске добавить асинхрон?
Anonymous
@Anfuehrer будет жить. Поприветствуем!
𝚔𝚟𝚊𝚙𝚜
как сделать lookup переменной lookup('env','ABC') но если ABC не определенна, то ansible выдавал бы undefined а не пустую строку
𝚔𝚟𝚊𝚙𝚜
|default('undefined', true)
мне не строка нужна, а None
Andor
а
Andor
а если | default(None, true)?
𝚔𝚟𝚊𝚙𝚜
а если | default(None, true)?
так же пустая строка будет :(
Andor
тогда ternary()
𝚔𝚟𝚊𝚙𝚜
тогда ternary()
не понимаю как его можно туда применить
Andor
ну что-то типа lookup('env','ABC') | ternary(lookup('env','ABC'), None)
𝚔𝚟𝚊𝚙𝚜
плейграунд: ansible localhost -m debug -a 'msg={% if a is defined%}True{% else %}False{% endif %}' -e "a=\'{{ lookup('env','ABC') }}\'"дожно выдавать: localhost | SUCCESS => { "msg": false }
Andor
daladna
Andor
то есть оно пустую строку считает true?
Andor
ну понятно что оно defined
Andor
None же defined, не?
Andor
мне кажется тебе туда надо is not none
𝚔𝚟𝚊𝚙𝚜
ггг, даже None это defined
Andor
ггг, даже None это defined
определённое неопределённое значение, я не понимаю как ты не понимаешь
𝚔𝚟𝚊𝚙𝚜
мне кажется тебе туда надо is not none
is not none тоже вседа true возвращает
Andor
хаха
Andor
ну короче надо потыкать пальчком варианты
𝚔𝚟𝚊𝚙𝚜
видимо придётся с if a is defined and a != "" жить
Anonymous
Pavel Sh будет жить. Поприветствуем!
DiNGeR
Здраствуйте. Спрошу глупость, но в виду отсутствия опыта, даже непойму с какой сторгоны подходить. Все изложил тут - https://pastebin.com/a8jyG4d2
Artur
None?
DiNGeR
None?
Каким образом? Он будет это интерпретировать как пользователя.
Artur
Каким образом? Он будет это интерпретировать как пользователя.
просто предположение. почему бы не попробовать?
Artur
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#omitting-parameters
DiNGeR
В item для loop пробовал все параметры заключать и в одинарные и в двойные кавычки.
DiNGeR
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#omitting-parameters
Спасибо, доберусь до компа, попробую.
Timur
как сделать lookup переменной lookup('env','ABC') но если ABC не определенна, то ansible выдавал бы undefined а не пустую строку
А как исходная задача звучит? Что за переменная и какую логику вы пытаетесь реализовать?
𝚔𝚟𝚊𝚙𝚜
А как исходная задача звучит? Что за переменная и какую логику вы пытаетесь реализовать?
Я хотел в инвентори задавать часть переменных, переменными окружения, но если переменная окруженния не установленна хотел бы чтобы было Undefined. В принципе задачу уже решил другим путём. Я добавил все такие переменные в default vars, а в плейбуке заменил все проверки is defined на = ""
𝚔𝚟𝚊𝚙𝚜
ну ок, объясняй как надо
greydjin
Timur
ну ок, объясняй как надо
Речь о переменных роли или просто плейбук?
Timur
Для роли все используемые пользователем параметры должны быть определены в defaults. Undefined быть не должно
Timur
Undefined значения могут встречаться во всяких динамически получаемых словарях и списках.
𝚔𝚟𝚊𝚙𝚜
да, роль, в ней и определил эти переменные в defaults
𝚔𝚟𝚊𝚙𝚜
аля: network: "{{ lookup('env','NETWORK') }}" gateway: "{{ lookup('env','GATEWAY') }}" netmask: "{{ lookup('env','NETMASK') }}"
𝚔𝚟𝚊𝚙𝚜
таким образом её и как переменную окружения задать можно, и как vars
𝚔𝚟𝚊𝚙𝚜
в любом случае исход будет один и тот же, не ""
Andor
а может лучше падать если они не определены но ожидаются?
Anonymous
подскажите как правильно оформлять подобное, чтобы небыло. цфктштпт - name: debug msg debug: msg: "{{example_var}}" with_items: "{{ example_var }}" when: '"{{item.name}}" == "vasy"’
Anonymous
[WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}.
Anonymous
Andor
Можно when: 'item.name == "vasy"'
DiNGeR
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#omitting-parameters
omit не помог, сказал - "Get-AnsibleParam: Missing required argument: users" None тоже, он с пустым параметром и так None передает.
Timur
С какой целью вы пытаетесь оставить его пустым?
DiNGeR
Ну в "чистом" виде модуль отрабатывает как надо. Пустой + action=set, что в итоге удаляет всех пользователей для данного name. Чего я собственно и добиваюсь. А так как нужно настроить с десятка два-три таких параметров (и некоторые должны быть "пустыми" в том числе). То решил оформить "красиво".
DiNGeR
Удаление пользователей делается другим модулем
Я не удаляю пользователей. Я пишу плейбук для применения hardening policy. И там есть требования, к примеру: что бы ни у кого небыло права SeTrustedCredManAccessPrivilege. Для этого я удаляю всех пользователей из этого параметра.
Timur
Чтобы ко всем юзерам применялось
DiNGeR
Мне не нужно - Все, мне нужно - Никто.
DiNGeR
Если без loop все отрабатывает как надо, и на клиенте появляется желаемый вид настройки
Anonymous
коллеги, подскажите, а в ansible можно сделать вложеный цикл ?
Sergey
Можно теоретически.