Vladimir
Alexander
ну вот можно сделать service.target и к нему два check-app-service-config.service и app-service.service
Alexander
один за другим (прописать там After= )
Alexander
это как альтернатива ExecStop="conftest && kill"
Alexander
и делать рестарт таргета, а не сервиса
Vladimir
Vladimir
Alexander
если в app-service.service написано Requires=check-app-service-config.service , то по идее он не должен запускать его
Alexander
или не Requires а что-то другое, возможно?
Alexander
там что-то такое было, я сильно не вникал
Vladimir
Vladimir
@lorddaedra давай представим допустим nginx (пример не очень хороший, потому что там альтернативным способом проблема решается). Ты ставишь новую версию
Vladimir
Чтобы обновить версию нужно делать restart
Alexander
вот эти моменты через systemd криво решаются, да
Vladimir
но ты не хочешь уронить сервис если по какой-то причине конфиг оказался невалидным.
Vladimir
поэтому нужно проверить конфиг и сделать рестарт
Vladimir
но у системд нет PreStop
Vladimir
в nginx это решается через скрипты для апгрейда
Alexander
видимо, это нужно делать скриптом
Vladimir
и делать релоад вместо рестарт
Vladimir
что решает не все кейсы, но их большую часть
Alexander
я не знаю, как без скриптов тут гибко настроить systemd, мне бы хотелось, чтобы этот функционал появился в новых версиях
Alexander
у самого нечто подобное было
Vladimir
просто кажется тут даже два сервиса не помогут
Roki
А если конфиг не валидный и рестарта не произошло. Дальше то что? Бинарник обновился уже.
Pavel
Vladimir
сервис со старым конфигом в старой версии продолжает работать
Pavel
ты можешь руками удалить любое правило и добавить новое в любое место таблицы фильтра
Roki
Anonymous
Vladimir
Vladimir
как зафейлившийся паппет ран или если кто-то через pssh/salt дергает команды или еще каким образом
Vladimir
Dmitry
Ну инструмент относительно свежий и развивается
Vladimir
Anonymous
нет, помогут твой старый конфиг преобразовать в то что нужно иниту системд
Anonymous
у меня была задача, чтобы если сервис после моих изменений не запускался, он не перезагружался
Anonymous
мне в 2014 помогли это сделать для федора
Anonymous
это делалось в системд ините
Anonymous
но как именно я не помню уже
Anonymous
правда сразу предупрежу, возможно там будет systemd-nspawn служба участвовать
Anonymous
то есть првоерять он будет в нём
Anonymous
и для этого скорее всего придёться править selinux и разрешённые id в системе
Vladimir
Vladimir
так что ничего не придется править
Vladimir
ок, поставил себе напоминаналку
Anonymous
я вот например составляю дефолт список id, и вне их потом запрещаю запускать
Anonymous
сколько у вас там народу
Vladimir
Anonymous
ну безопасники, сетевики, железячники
Anonymous
софтовики
Vladimir
Vladimir
но в технарей почему-то включают еще дизайнеров и копирайтеров
Vladimir
@erzent ты удивишься, но почти любая контора где серверов становится несколько сотен, первым делом вырубает selinux и apparmor потому что их очень дорого поддерживать. И в плане оверхеда по скорости и в плане конкретных кейсов которые они решают
Anonymous
Anonymous
и там selinux работает
Vladimir
ну ок, покка не противоречит тому что я сказал
Anonymous
мне уже эта фича с id помогала 4раза
Vladimir
Anonymous
офисных, когда есть люди которым заставили дать рут пароль
Anonymous
но при том мне нужно было, чтобы они не могли весь сервер переебать
Anonymous
вот в этой конторе оч много где будет стоять selinux из-за того мальчика зама начальника разработки
Vladimir
Anonymous
в каких кейсах?
вон недавно этот клоун залез в AD и добавил gpo из-за которого нам прилетело больше 100 писем
Anonymous
это он типа сделал, чтобы меньше шанс заражения вирусами был
Pavel
Pavel
хочешь что-то внести - пишешь зачем, кому.
Pavel
если изменения нет - штраф
Pavel
я уж молчу про планы внедрения и ко
Anonymous
ему на планы пока пох