Puppet 分阶段重启

Puppet reboot in stages

我需要使用 Puppet(当前使用 Puppet apply)对 CentOS6 主机进行两步安装,但卡住了。甚至不确定今天是否可能。

步骤 1,设置基本系统,例如设置主机、ntp、邮件和一些驱动程序。

需要重启

步骤 2,设置自定义服务。

这只蜜蜂能顺利完成吗?我对puppet环境还不是很熟悉

首先,我非常怀疑 CentOS 机器上的任何设置步骤都严格要求重新启动。重启正确的服务集通常足以使所有设置生效。

无论如何,解决这类问题的基本方法是

  1. 定义一个自定义事实,确定机器是否准备好接收最终配置步骤(您问题中的第 2 步)
  2. 使用使用该事实值的 if 条件保护清单的相关部分。

您可能希望先创建一个文件,然后在完成基本系统安装后将其删除(下例中为 ntp)

例如

exec { '/tmp/reboot':
  path    => "/usr/bin:/bin:/sbin",
  command => 'touch /tmp/reboot',
  onlyif => 'test ! -f /tmp/rebooted',
}


service { 'ntp':
    require => Exec['/tmp/reboot'],
...
}

exec { 'reboot':
    command => "mv /tmp/reboot /tmp/rebooted; reboot",
    path    => "/usr/bin:/bin:/sbin",
    onlyif  => "test -f /tmp/reboot",
    require => Service['ntp'],
    creates => '/tmp/rebooted',
}