Class 如何继承类

Class 如何继承类,class,service,puppet,notify,Class,Service,Puppet,Notify,我不明白如何从另一个类重新启动服务。 我的结构是: # cat init.pp class nginxrtmp { include nginxrtmp::nginxinstall include nginxrtmp::nginxconfig } 在nginxrtmp::nginxsinstall中,我需要重新启动服务nginx # cat nginxinstall.pp service {'nginx': name => 'nginx.service', ensu

我不明白如何从另一个类重新启动服务。 我的结构是:

# cat init.pp
class nginxrtmp {  
  include nginxrtmp::nginxinstall  
  include nginxrtmp::nginxconfig
}
在nginxrtmp::nginxsinstall中,我需要重新启动服务nginx

# cat nginxinstall.pp
service {'nginx':
  name => 'nginx.service',
  ensure => 'running',
  enable => 'true',
} 
在nginxrtmp::nginxconfig中,我有带有config的*.erb模板

# cat nginxconfig.pp  
  file { '/etc/nginx/nginx.conf':
    * => $resAttributes,
    content => template('nginxrtmp/redhat.nginx.conf.erb'),
    notify  => nginxinstall::Service['nginx'],
  }

我的问题是,如果我的模板文件发生更改,如何重新启动另一个类和文件*.pp中描述的服务nginx,我刚刚找到了答案。需要写作

include nginxrtmp::nginxinstall 

在使用config的类中,您可以创建包含服务的service.pp文件,然后将其更改为:

# cat nginxconfig.pp  
  file { '/etc/nginx/nginx.conf':
    * => $resAttributes,
    content => template('nginxrtmp/redhat.nginx.conf.erb'),
    notify  => nginxinstall::Service['nginx'],
  }
  # init.pp
  class nginxrtmp {
    contain nginxrtmp::service
    contain nginxrtmp::config

    Class['::nginxrtmp::config']
    ~> Class['::nginxrtmp::service']
  }

  # service.pp
  service { 'nginx':
    name   => 'nginx.service',
    ensure => 'running',
    enable => 'true',
  }

  # config.pp  
  file { '/etc/nginx/nginx.conf':
    *       => $resAttributes,
    content => template('nginxrtmp/redhat.nginx.conf.erb'),
  }
请看:这一节是关于订购的