木偶:在覆盖文件之前停止服务

sku*_*ito 5 puppet

我得到了以下简化配置:

file {
  '/etc/foo.conf':
    ensure  => file,
    content => epp('my_module/etc/foo.conf.epp'),
  ;
}

service {
  'foo':
    ensure    => running,
    enable    => true,
    subscribe => File['/etc/foo.conf'],
  ;
}
Run Code Online (Sandbox Code Playgroud)

当我更新模板时,傀儡覆盖/etc/foo.conf然后重新启动服务。

我的问题是,我需要在覆盖文件之前停止服务,因为当服务停止时,它将内存中的配置写回到文件中。

有没有办法用木偶来做?

bod*_*git 5

看一下转换模块。这样,您可以执行以下操作:

transition { 'stop foo service':
  resource   => Service['foo'],
  attributes => { ensure => stopped },
  prior_to   => File['/etc/foo.conf'],
}

file { '/etc/foo.conf':
  ensure  => file,
  content => epp('my_module/etc/foo.conf.epp'),
}

service { 'foo':
  ensure    => running,
  enable    => true,
  subscribe => File['/etc/foo.conf'],
}
Run Code Online (Sandbox Code Playgroud)

不需要exec