同一服务器上有多个 NFS 挂载的 puppet

同一服务器上有多个 NFS 挂载的 puppet

我在同一台服务器上有几个 NFS 挂载点,但目录不同。例如:

    x.x.x.x:/stats   /data/stats
    x.x.x.x:/scratch   /data/scratch
    x.x.x.x:/ops   /data/ops    

但是当我尝试运行 Puppet 时,它会将以下内容添加到我的 fstab 中。(错误的挂载分配)

x.x.x.x:/scratch   /data/stats       nfs     defaults,nodev,nosharecache     0       0
x.x.x.x:/scratch   /data/ops  nfs     defaults,nodev,nosharecache     0       0
x.x.x.x:/scratch   /data/scratch     nfs     defaults,nodev,nosharecache     0       0

它在所有已挂载分区上使用最后一个挂载选项。所以我做了一点研究并发现了以下错误。

 https://tickets.puppetlabs.com/browse/DOCUMENT-242

然后添加了 nosharecache 选项,但仍然没有运气。这是我的 puppet 代码

class profile::mounts::stats {
  # Hiera lookups
  $location = hiera('profile::mounts::stats::location')
  $location2 = hiera('profile::mounts::stats::location2')
   tag        'new_mount'

 file { '/data/stats':
ensure  => directory,
owner   => 'root',
group   => 'root',
mode    => '0755',
require => File['/data'],
tag     => 'new_mount',
}

  mount { '/data/stats':
ensure  => mounted,
fstype  => 'nfs',
device  => $location,
options => 'defaults,nodev,nosharecache',
require => File['/data/stats'],
tag     => 'new_mount'
}



file { '/data/ops':
  ensure  => directory,
  owner   => 'root',
  group   => 'mail',
  mode    => '0775',
  require => File['/data'],
  tag     => 'new_mount',
}

 mount { '/data/ops':
ensure  => mounted,
fstype  => 'nfs',
device  => $location,
options => 'defaults,nodev,nosharecache',
require => File['/data/ops'],
tag     => 'new_mount',
}

file { '/data/scratch':
ensure  => directory,
owner   => 'root',
group   => 'mail',
mode    => '0775',
require => File['/data'],
tag     => 'new_mount',
}

 mount { '/data/scratch':
ensure  => mounted,
fstype  => 'nfs',
device  => $location2,
options => 'defaults,nodev,nosharecache',
require => File['/data/scratch'],
tag     => 'new_mount',
}

 }

 }

我的 hiera 查找如下

 profile::mounts::stats::location: x.x.x.x:/stats
 profile::mounts::stats::location2: x.x.x.x:/scratch

为什么它会导致一些意外的行为?

相关内容