Service 如何在Puppet中定义两次相同的服务?

Service 如何在Puppet中定义两次相同的服务?,service,puppet,Service,Puppet,为了使用Puppet类部署Varnish,我需要停止移动和部署文件的Varnish,然后在最后确保Varnish已启动 我的问题很简单,如何在Puppet类中定义两次服务,以便在不同的步骤停止或启动服务 class varnish::install ( (...) service { "varnish": ensure => "stopped", require => Package['varnish'], befo

为了使用Puppet类部署Varnish,我需要停止移动和部署文件的Varnish,然后在最后确保Varnish已启动

我的问题很简单,如何在Puppet类中定义两次服务,以便在不同的步骤停止或启动服务

class varnish::install (

    (...)

    service { "varnish":
        ensure => "stopped",
        require => Package['varnish'],
        before => Exec['mv-lib-varnish'],
    }

    (...)

    service { "varnish":
        ensure => "running",
        require => File["$varnishncsa_file"],
    }
}
我有一个重复的定义:服务[清漆]。。。错误,这是合乎逻辑的


在Puppet类中管理服务的最佳实践是什么?划分为多个类,或者有一个选项可以重命名服务以多次声明它?

尝试以下操作以消除重复错误,但您尝试的操作是错误的。 Puppet将系统带到某种一致的状态—所以告诉停止服务X,做一些工作,启动服务X—它超出了正确使用Puppet的范围,Puppet更像是重新启动服务—如果服务所依赖的某些文件被修改

class varnish::install (

(...)

service { "varnish-stop":
    name => "varnish"
    ensure => "stopped",
    require => Package['varnish'],
    before => Exec['mv-lib-varnish'],
}

(...)

service { "varnish-start":
    name => "varnish"
    ensure => "running",
    require => File["$varnishncsa_file"],
}
}

尝试以下操作以消除重复错误,但您尝试的操作是错误的。 Puppet将系统带到某种一致的状态—所以告诉停止服务X,做一些工作,启动服务X—它超出了正确使用Puppet的范围,Puppet更像是重新启动服务—如果服务所依赖的某些文件被修改

class varnish::install (

(...)

service { "varnish-stop":
    name => "varnish"
    ensure => "stopped",
    require => Package['varnish'],
    before => Exec['mv-lib-varnish'],
}

(...)

service { "varnish-start":
    name => "varnish"
    ensure => "running",
    require => File["$varnishncsa_file"],
}
}

使用带有服务重启的exec作为部署文件操作包/另一个exec的钩子通知。仅将服务本身定义为正在运行,因为这是您通常想要确保的。Puppet用于描述目标状态。

使用带有服务重启的exec作为部署文件操作包/另一个exec的钩子通知。仅将服务本身定义为正在运行,因为这是您通常想要确保的。Puppet用于描述目标状态