Например то не так, что в Jinja придумали свой убогий недо-язык по мотивам питона. А mako использует внутри себя, фактически, тот же самый Python со всеми его возможностями.
И, скорее всего, при выборе Mako не было бы проблемы с конвертацией типов (см. коммент amarao).
Жвачкой залепили датчики в новопостроенном метро (1987 год), а государство, вполне в китайском стиле, просто её запретило везде, в т.ч. ввозить из-за границы.
Советую книгу первого премьер-министра Сингапура Ли Куан Ю «Из третьего мира — в первый», очень интересная.
Почему 99% разработчиков эргономичных клавиатур не поймут до сих пор, что переносить руку с клавиатуры на мышь/touchpad это жутко неэргономично?
Если бы в Dactyl или подобный проект встроили трекпоинт, это было бы идеальное решение. Трекбол тоже можно, но он похуже, т.к. надо больше движений пальцами.
А скрипты идемпотентными сами по себе вы не сделаете, потому что надо как-то репортить changed в Ansible, а у shell нет критериев для этого.
Да ладно. Есть changed_when. Типа такого:
- command: foo
register: foo_result
changed_when: not foo_result.stdout|regex_search("\\n\s+No migrations to apply")
notify: systemctl restart foo.target
Выглядит не очень — согласен. Но всё там идемпотентно и оно работает. Причёсывать и писать модуль django_migrate — ну вот хз. По каждому чиху модуль пилить? Разве что если есть время и перфекционизм.
Ну вот я не вижу смысла инклюдить всю роль целиком без указания конкретного таска. Я бы так ни за что не сделал. Потому что такое выносится в play, там ему и место.
Если include_role с заданным таском (как в моих комментах выше), то этот таск пишется с расчётом, что его будут инклюдить из других ролей. Поэтому с переменными аккуратно обращаюсь.
Ну и опять же, я не топлю за include_role повсюду — по опыту, такая необходимость возникает редко. Например, для добавления кастомных apt репозиториев.
apt_repo не годится, т.к. не умеет в deb822 добавлять. Но когда будет время, я всё же модуль напишу, может даже PR в апстрим сделаю.
И когда модуль будет готов, то все include_role удобно заменятся на модуль.
Ага, понял, ну это, в целом, не для ансибла задача. Т.к. нельзя на свиче запускать код. Т.е. каждый хост в inventory — это машинка, куда можно по SSH зайти и запустить там модуль.
Но если надо, то можно просто на localhost запускать. Т.е. будет что-то такое:
Феерические взрывы в нём на границе 2.4-2.7 должны были хорошо проиллюстрировать, что такое 'preview'.
И что там взрывалось? У меня всё отлично работало, с момента его появление. И это не «ошибка выжившего». Это означает, что его можно использовать, если понимать, как.
Я обычно делаю по «2». Никаких проблем с приоритетами нет, на самом деле. Автор статьи преувеличивает.
модуль — сложно, долго и не очень понятно зачем тогда ансибл нужен
Модули писать — это правильное решение. И тесты к ним обязательно.
Вопрос — в уровнях абстракции. Например, вот есть модуль mongodb_replicaset, хотя можно было тот же самый функционал и на yaml написать, с определёнными костылями. Но тут мы получаем законченный модуль, который делает всё, что нужно и не требуется в него внутрь лезть.
По таким данные проходят: TOPK, также с ними, например, совместимы переходники CANDYEIC. Другие производители их тоже делают (PZOZ из коммента выше).
Должны выглядеть так, по 5 контактов в 2 ряда:
В одном положении данные проходят. Если перевернуть на 90 градусов, то только зарядка. Ну и USB3, понятно, не работает.
Например то не так, что в Jinja придумали свой убогий недо-язык по мотивам питона. А mako использует внутри себя, фактически, тот же самый Python со всеми его возможностями.
И, скорее всего, при выборе Mako не было бы проблемы с конвертацией типов (см. коммент amarao).
Откройте для себя tmux.
Жвачкой залепили датчики в новопостроенном метро (1987 год), а государство, вполне в китайском стиле, просто её запретило везде, в т.ч. ввозить из-за границы.
Советую книгу первого премьер-министра Сингапура Ли Куан Ю «Из третьего мира — в первый», очень интересная.
Спутали печати, в Азии такое бывает, у меня тоже случалось. Но если больше 30 дней задержаться, были бы проблемы, независимо от печати.
30 дней, а не 90.
А что там с fluent-bit, подробнее расскажете?
Да, знаю про неё, жду. Но пока не выпустили — по факту нет.
Ну и UHK не ортолинейная — кнопки ступеньками. Это жирный минус, конечно.
Но мне ещё понравился там модуль с 3 кнопками и микротрекболом — это очень интересная идея, я такого не встречал нигде.
Интересно, а как они коннектятся с каждой кнопкой? Она через эти проводники передаёт при нажатии какой-то сложный сигнал?
О! У них там трекболы встроены, это очень круто.
Почему 99% разработчиков эргономичных клавиатур не поймут до сих пор, что переносить руку с клавиатуры на мышь/touchpad это жутко неэргономично?
Если бы в Dactyl или подобный проект встроили трекпоинт, это было бы идеальное решение. Трекбол тоже можно, но он похуже, т.к. надо больше движений пальцами.
В
/etc/systemd/journald.conf
(или в/etc/systemd/journald.conf.d/whatever.conf
):Да ладно. Есть
changed_when
. Типа такого:Выглядит не очень — согласен. Но всё там идемпотентно и оно работает. Причёсывать и писать модуль
django_migrate
— ну вот хз. По каждому чиху модуль пилить? Разве что если есть время и перфекционизм.Вот не факт. В chef есть нотифаи
:immediate
, а в ансибле такого не завезли.meta: flush_handlers
тоже не всегда годится, т.к. нельзя отдельные хендлеры дёрнуть, только все разом в очереди.Command
это для примера, разумеется.Command
не запускает шелл (shell
запускает). А при желании, можно и запуск внешних скриптов сделать абсолютно идемпотентно.Почему?
Ну вот я не вижу смысла инклюдить всю роль целиком без указания конкретного таска. Я бы так ни за что не сделал. Потому что такое выносится в play, там ему и место.
Если
include_role
с заданным таском (как в моих комментах выше), то этот таск пишется с расчётом, что его будут инклюдить из других ролей. Поэтому с переменными аккуратно обращаюсь.Ну и опять же, я не топлю за
include_role
повсюду — по опыту, такая необходимость возникает редко. Например, для добавления кастомных apt репозиториев.apt_repo
не годится, т.к. не умеет в deb822 добавлять. Но когда будет время, я всё же модуль напишу, может даже PR в апстрим сделаю.И когда модуль будет готов, то все
include_role
удобно заменятся на модуль.Ага, понял, ну это, в целом, не для ансибла задача. Т.к. нельзя на свиче запускать код. Т.е. каждый хост в inventory — это машинка, куда можно по SSH зайти и запустить там модуль.
Но если надо, то можно просто на localhost запускать. Т.е. будет что-то такое:
И что там взрывалось? У меня всё отлично работало, с момента его появление. И это не «ошибка выжившего». Это означает, что его можно использовать, если понимать, как.
Я обычно делаю по «2». Никаких проблем с приоритетами нет, на самом деле. Автор статьи преувеличивает.
Модули писать — это правильное решение. И тесты к ним обязательно.
Вопрос — в уровнях абстракции. Например, вот есть модуль
mongodb_replicaset
, хотя можно было тот же самый функционал и на yaml написать, с определёнными костылями. Но тут мы получаем законченный модуль, который делает всё, что нужно и не требуется в него внутрь лезть.