Један OpenVPN drop-in променио је све тунеле: инстанца наспрам шаблона
Drop-in у директоријуму инстанце дотиче један тунел; директоријум шаблона дотиче све. Прочитајте спојену јединицу пре избора путање.
Правило поновног покретања додато за један тунел почиње да се примењује на сваки тунел на машини. То није грешка у systemd-у; то је разлика између drop-in-а инстанце и drop-in-а шаблона. Путања испод које пишете датотеку одлучује колико ће је услуга наследити.
Изаберите обим пре поставке. Два директоријума изгледају готово идентично, а само је један од њих ограничен на инстанцу коју сте мислили.
Симптом: једна измена, сви тунели
Drop-in специфичан за инстанцу налази се у директоријуму названом по пуној инстанци, на пример [email protected]. Drop-in шаблона налази се у [email protected], са знаком @ и без имена инстанце између њих. Први важи само за office. Други важи за сваку услугу створену из тог шаблона.
Облик шаблона не достиже засебан шаблон [email protected] и не достиже неповезане услуге које имају openvpn у имену.
Изаберите директоријум који одговара обиму
Оба директоријума су испод /etc/systemd/system/. Ако изоставите последњу компоненту system, настаје путања коју systemd не чита као системско преписивање, а то је тих начин да датотека која изгледа исправно не уради ништа. Запишите пуну путању једном и поново је користите.
Drop-in такође захтева исправан наслов одељка. Поставке услуге припадају испод [Service]. Датотека са поставкама али без одељка се игнорише или одбија, и јединица се наставља понашати као пре док датотека стоји тамо и изгледа ауторитативно.
Задржите сврху у имену датотеке ако додајете више од једног drop-in-а. Лексикографски редослед одлучује спајање, а име које каже шта датотека ради чини тај редослед читљивим.
Прочитајте спојену јединицу пре писања
Прочитајте спојену јединицу пре него што било шта напишете. systemctl cat [email protected] исписује главну јединицу и сваки примењиви drop-in по редоследу спајања. Упоредите је са другом инстанцом када размишљате о промени шаблона. То поређење показује тачно које би услуге наследиле измену.
Датотека инстанце не брише поставке шаблона. Обе се спајају, па заборављена вредност из шаблона може још увек да важи.
Учествују и други именовани drop-in-ови, поставке у време извршавања и конфигурација коју дају пакети. Не претпостављајте да је датотека коју сте последњу уредили цела јединица. Спојени излаз је јединица.
Држите политику јединице изван профила
Држите политику јединице и VPN конфигурацију одвојено. Директива профила не постаје важећа systemd синтакса зато што стоји испод [Service]. Ни поставка поновног покретања не припада датотеци .ovpn.
Ово раздвајање је и разлог зашто политика поновног покретања није исто што и OpenVPN сопствено опорављање партнера. Одлучите какво понашање желите пре избора обима.
Примените и проверите инстанцу
Након измене, поново учитајте дефиниције менаџера помоћу systemctl daemon-reload. То учитавање не рестартује тунел; само поново чита датотеке јединица. Затим примените предвиђену радњу животног циклуса на тачну инстанцу.
Проверите поновним читањем учитане јединице и посматрањем понашања које сте променили. Поновно покретање које носи активан рад заслужује планирани прекид, а не брз тест на продукционом тунелу. Запишите сврху и обим преписивања поред распоређивања да би следећа особа знала да ли је датотека била намењена дељењу.
Ако је политика заиста заједничка, намерно је преместите у шаблон и проверите другу инстанцу пре него што је прогласите готовом.Референца за systemd јединице документује приоритет drop-in-а и редослед спајања.