2016-07-07 4 views
2

私は自分のサービスからファイルに条件付きの「購読」を使うことができる私の人形エンタープライズのマニフェストに状況があります。このエラーメッセージが表示されます...人形エンタープライズ3.7で条件付購読を設定するにはどうすればいいですか?

...上記のエラーが発生するような人形のコードです。エラー$enabled_backends =~ /netapp-cinder/がfalseに評価されるとき、エラーが発生するように注意します。

class cinder (
... long list of parameters ... 
) { 
    if ($enabled_backends =~ /netapp-cinder/) { 
     file { '/etc/cinder/nfs-shares.conf': 
      ensure => file, 
      path => '/etc/cinder/nfs-shares.conf', 
      owner => cinder, 
      group => cinder, 
      mode => '0640', 
      content => template('cinder/nfs-shares.conf.erb'), 
     } 
    } 

    # long list of package and file resources 

    package {'qemu-kvm-rhev': 
     ensure  => 'present', 
     allow_virtual => false, 
    } -> 

    package { 'openstack-cinder': 
     ensure => 'present', 
     name => 'openstack-cinder', 
     before => [ 
      File['/etc/nova/nova.conf'], 
     ], 
    } -> 

    package { 'python-cinderclient': 
     ensure => 'present', 
    } -> 

    ... even more resource declarations ... 

    service { 'openstack-cinder-api': 
     ensure => running, 
     enable => true, 
     subscribe => [ 
      File['/etc/cinder/cinder.conf'], 
      File['/etc/cinder/nfs-shares.conf'], 
     ], 
    } -> 

    service { 'openstack-cinder-scheduler': 
     ensure => running, 
     enable => true, 
     subscribe => [ 
      File['/etc/cinder/cinder.conf'], 
      File['/etc/cinder/nfs-shares.conf'], 
     ], 
    } -> 

    service { 'openstack-cinder-volume': 
     ensure => running, 
     enable => true, 
     subscribe => [ 
      File['/etc/cinder/cinder.conf'], 
      File['/etc/cinder/nfs-shares.conf'], 
     ], 
    } 

    service { 'openstack-cinder-backup': 
     ensure => running, 
     enable => true, 
     subscribe => [ 
      File['/etc/cinder/cinder.conf'], 
      File['/etc/cinder/nfs-shares.conf'], 
     ], 
    } -> 

    ... more puppet code ... 

私が購読ファイル[ 'は/ etc /噴石/ NFS-shares.conf']条件を作ることができるいくつかの方法がありますか?

答えて

1
file { '/etc/cinder/nfs-shares.conf': 
    ensure => file, 
    path => '/etc/cinder/nfs-shares.conf', 
    owner => cinder, 
    group => cinder, 
    mode => '0640', 
    content => template('cinder/nfs-shares.conf.erb'), 
    notify => Service['openstack-cinder-api', 'openstack-cinder-scheduler', 'openstack-cinder-volume', 'openstack-cinder-backup'], <-- add this attribute 
} 

次に、openstackサービスからFile['/etc/cinder/nfs-shares.conf']のすべての購読を削除します。これで、サービスの再起動トリガーが条件付きで実行され、必要な動作が実行されます。

puppetlabsサポート用のEOLであるため、将来のパーサを使用して3.7からアップグレードする場合は、これらのopenstackサービスリソースをラムダに変換することもお勧めします。

関連する問題