(更新)我在原始问题中忽略了一行重要的代码。如何确保服务在执行Exec资源之前重新启动?
我写了一个将创建本地存储的傀儡模块。这是不自动的方式。
- 编辑/etc/multipath.conf文件
- 重新启动在multipathd守护
- 执行pvcreate将$设备
- 执行的vgcreate $ VOLUME_NAME $设备
所以在我的木偶模块I如果/etc/multipath.conf文件更改,则要确保multipathd守护进程重新启动。所以我用这种方式写了我的傀儡表。
Service['multipathd'] -> Anchor['create_storage_volume::begin']
...
file { '/etc/multipath.conf':
ensure => file,
content => template('local_storage::hadoop/multipath.conf.erb'),
owner => 'root',
mode => '0600',
notify => Service['multipathd'],
} ->
service { 'multipathd':
enable => true,
ensure => running,
}
anchor { 'create_storage_volume::begin': } ->
exec { "pvcreate ${device}":
path => ['/usr/sbin', '/bin'],
unless => "pvs | grep ${"volume_name},
} ->
exec { "vgcreate ${volume_name} ${device}":
path => ['/usr/sbin', '/bin'],
unless => "pvs | grep ${"volume_name},
} -> # -> do nova config stuff
anchor { 'create_storage_volume::end': }
...
我的问题是,“做上面的代码保证了在multipathd守护程序被执行pvcreate和运行vgcreate指令执行前重新启动”?我是否需要添加更多类似资源的订单...
Service['multipathd'] -> Anchor['local_storage::begin']
?
谢谢你的回答。我有几个问题。我在我原来的问题中忽略了这一行:Service ['multipathd'] - > Anchor ['create_storage_volume :: begin'](我会更新我的问题),但确保服务multipathd在我之前重新启动Exec资源执行? –
从技术上讲,Puppet的文档没有明确说明资源刷新的时间。在实践中,在当前和历史版本的Puppet中,如果资源要刷新,那么它将在它(或将要)同步之后立即执行。 –
@RedCricket我唯一的补充建议是检查Puppet的'lvm'模块。 –