Подумайте про використання сценарію для читання конфігурації вище, модифікуйте її та випустіть її до випадаючого файлу.
Наприклад, я використовую шеф-кухаря, і ось фрагмент рубіна (бібліотека), який аналізує системний блок марафону, щоб отримати з нього оригінальний ExecStart
require 'inifile'
module Dcos
def get_execstart_from_unit_file
marathon_systemd_unit_file =
IniFile.load('/etc/systemd/system/dcos-marathon.service')
return marathon_systemd_unit_file['Service']['ExecStart']
end
end
Потім у рецепті я створюю файл, що випадає, щоб додати опцію до ExecStart
chef_gem 'inifile'
exec_start_orig = get_execstart_from_unit_file
systemd_service_drop_in 'dcos-marathon' do
override 'dcos-marathon.service'
precursor 'Service' => { 'ExecStart' => nil }
service do
exec_start exec_start_orig + ' --env_vars_prefix "DCOS_MARATHON_"'
end
end