@devops_ru

Страница 1418 из 4568
Dmitry
23.10.2016
10:20:33
вот на это и надо давить, чё
Надо брать документацию и результаты тестов

Но это не путь хрыча

Старый
23.10.2016
10:20:52
Что значит современнее?
по сути firewalld это и есть iptables ток доработанный

Dmitry
23.10.2016
10:21:05
Google
Dmitry
23.10.2016
10:21:11
Конкретнее

Вот почему нетстат деприкейт я могу нагуглить

Vladimir
23.10.2016
10:21:33
по сути firewalld это и есть iptables ток доработанный
вероятнее всего firewalld генерирует неоптимальные правила для iptables, потому что в десктопах оптимальность не важна.

Vladimir
23.10.2016
10:22:02
поэтому он в rhel 7?
в рхел оно потому что рх мудаки

Dmitry
23.10.2016
10:22:07
А

Vladimir
23.10.2016
10:22:12
и впихнули десктопный системд в серверную ос

Dmitry
23.10.2016
10:22:18
Ну если он в рхел то пиздец

Пошел везде ставить

Это довод в стиле лора

Vladimir
23.10.2016
10:22:59
поэтому он в rhel 7?
системд в рхел7 это источник большей части проблем, потому что он ломает существующие кейсы, некорректно работает на ряде оборудования и т.п.

Старый
23.10.2016
10:23:11
и впихнули десктопный системд в серверную ос
у меня особых проблем с системд нет, и очень просили разрабы, создать тикеты на твои баги https://bugzilla.redhat.com/

Google
Vladimir
23.10.2016
10:23:35
даже не мной созданные

кейсы надо дорабатывать, как при любом обновлении
ну смотри - у меня есть демон, он умеет проверять свой конфиг по команде. Мне нужно чтобы restart не начинался если конфиг не валидный

Dmitry
23.10.2016
10:24:27
С системд зачастую виноваты разрабы, которые не пишут скрипты

Vladimir
23.10.2016
10:24:27
в systemd этого сделать нельзя от слова совсем.

Dmitry
23.10.2016
10:24:32
Или пишут жопами

Kirill
23.10.2016
10:24:46
Надо брать документацию и результаты тестов
ну, у меня спросили не как это сделать, а как отговорить

Старый
23.10.2016
10:24:58
Ну если он в рхел то пиздец
в firewalld не нужно сохранять конфиг, и перезагружать весь фаервол чтобы применить правило

Dmitry
23.10.2016
10:25:13
Vladimir
23.10.2016
10:25:43
@erzent расскажи как.

@erzent в системд restart это последовательное stop -> post-stop -> pre-start -> start

stop нельзя отменить

by design

Dmitry
23.10.2016
10:26:29
Врапер писать надо

Но по хорошему сам софт должен это проверять

Норм софт с невалидной конфигой шлет нах

Vladimir
23.10.2016
10:27:39
Старый
23.10.2016
10:27:56
@erzent расскажи как.
мы писали для софтины, что она перед запуском должна проверить свою хеш сумму прямо в инити системд

Google
Vladimir
23.10.2016
10:28:12
Норм софт с невалидной конфигой шлет нах
я хочу чтобы в ситуации апгрейда софтины, когда дергается restart, оно не стопалось если конфиг не валидный. А в системд оно будет убито

Dmitry
23.10.2016
10:28:15
Ааа

Я понял

Vladimir
23.10.2016
10:28:33
если оно не умрет за таймаут то системд в логах скажет что они считают что наверное так и должно быть и начнет выполнять дальше шаги

чекай при выключении
да, можно сделать ExecStop="conftest && kill"

Vladimir
23.10.2016
10:29:08
но как только таймаут пройдет, софтине прилетит в морду SIGKILL

Alexander
23.10.2016
10:29:20
ещё можно отдельный сервис и туда эту чекалку при выключении

и зависимость

Vladimir
23.10.2016
10:29:32
если поменять SIGKILL на что-то еще или выключить, то оно еще подождет и скажет что оно сдается, считает это нормальным

и пойдет стартовать демон заново

Vladimir
23.10.2016
10:29:50
при этом демон перейдет по мнению системд в статус stopped

а процесс останется висеть

ещё можно отдельный сервис и туда эту чекалку при выключении
пока непонятно как это спасет от SIGKILL в морду

Alexander
23.10.2016
10:31:31
ну вот можно сделать service.target и к нему два check-app-service-config.service и app-service.service

один за другим (прописать там After= )

это как альтернатива ExecStop="conftest && kill"

и делать рестарт таргета, а не сервиса

Vladimir
23.10.2016
10:32:22
это как альтернатива ExecStop="conftest && kill"
ну ExecStop в таком виде не работает

Google
Vladimir
23.10.2016
10:32:47
ну вот можно сделать service.target и к нему два check-app-service-config.service и app-service.service
да вот тут вопрос в том что сделает системд в ситуации когда check-app-service-config сфейлится

Alexander
23.10.2016
10:34:00
если в app-service.service написано Requires=check-app-service-config.service , то по идее он не должен запускать его

или не Requires а что-то другое, возможно?

там что-то такое было, я сильно не вникал

Vladimir
23.10.2016
10:34:29
если в app-service.service написано Requires=check-app-service-config.service , то по идее он не должен запускать его
так у меня задача не в том чтоб не запустить, а в том чтоб не ПЕРЕзапустить если конфиг-тест не отработал

@lorddaedra давай представим допустим nginx (пример не очень хороший, потому что там альтернативным способом проблема решается). Ты ставишь новую версию

Чтобы обновить версию нужно делать restart

Alexander
23.10.2016
10:35:39
вот эти моменты через systemd криво решаются, да

Vladimir
23.10.2016
10:35:45
но ты не хочешь уронить сервис если по какой-то причине конфиг оказался невалидным.

поэтому нужно проверить конфиг и сделать рестарт

Admin
ERROR: S client not available

Vladimir
23.10.2016
10:36:02
но у системд нет PreStop

в nginx это решается через скрипты для апгрейда

Alexander
23.10.2016
10:36:19
видимо, это нужно делать скриптом

Vladimir
23.10.2016
10:36:22
и делать релоад вместо рестарт

видимо, это нужно делать скриптом
ну сейчас это решается тем что в папете прописан notify на Exec который делает conftest && systemctl restart

что решает не все кейсы, но их большую часть

Alexander
23.10.2016
10:37:50
я не знаю, как без скриптов тут гибко настроить systemd, мне бы хотелось, чтобы этот функционал появился в новых версиях

у самого нечто подобное было

Vladimir
23.10.2016
10:38:30
просто кажется тут даже два сервиса не помогут

Google
Roman
23.10.2016
10:38:30
А если конфиг не валидный и рестарта не произошло. Дальше то что? Бинарник обновился уже.

Vladimir
23.10.2016
10:38:58
А если конфиг не валидный и рестарта не произошло. Дальше то что? Бинарник обновился уже.
дальше можно увидеть что что-то пошло не так, пойти и посмотреть почему. То что бинарник обновился не значит что сервис перезапустился

Vladimir
23.10.2016
10:39:20
сервис со старым конфигом в старой версии продолжает работать

Pavel
23.10.2016
10:39:33
ты можешь руками удалить любое правило и добавить новое в любое место таблицы фильтра

Vladimir
23.10.2016
10:39:49
А как? Должны быть какие то нотификейшины, процедуры.
чем бы ты это не делал фразы failed to restart + exit code достаточно чтобы это заметить

Pavel
23.10.2016
10:40:41
ты можешь руками удалить любое правило и добавить новое в любое место таблицы фильтра
от того, что модно стирать всю таблицу правил и заного все вносить не значит, что такого функционала нет.

Vladimir
23.10.2016
10:40:59
как зафейлившийся паппет ран или если кто-то через pssh/salt дергает команды или еще каким образом

Pavel
23.10.2016
10:41:32
как зафейлившийся паппет ран или если кто-то через pssh/salt дергает команды или еще каким образом
чисто в теории ничто не мешает это сделать. Но то что это делается как удаление гланд через задницу никто не отменял

Dmitry
23.10.2016
10:45:49
Ну инструмент относительно свежий и развивается

Vladimir
23.10.2016
10:46:06
Ну инструмент относительно свежий и развивается
нефиг пихать всякое сырое говно в LTS варианты дистрибутивов

Старый
23.10.2016
10:46:35
ну чисто на практике в системд такого функционала нет
напиши свою задачу в #rhel #fedora канале в телеграмме и irc, тебе напишут

Vladimir
23.10.2016
10:46:54
Старый
23.10.2016
10:47:24
нет, помогут твой старый конфиг преобразовать в то что нужно иниту системд

Vladimir
23.10.2016
10:47:58
нет, помогут твой старый конфиг преобразовать в то что нужно иниту системд
ок, спасибо за совет, попробую. Но кажется что в системд нет такого функционала в принципе.

Старый
23.10.2016
10:48:28
у меня была задача, чтобы если сервис после моих изменений не запускался, он не перезагружался

мне в 2014 помогли это сделать для федора

это делалось в системд ините

но как именно я не помню уже

Страница 1418 из 4568