ruby - puppet 通知 Exec 不起作用

标签 ruby linux module exec puppet

这是我的代码,不用担心已经在原始代码中设置的变量。我只是在这里放一小段代码来向您展示它在做什么。以下代码更新文件 /etc/sysctl.d/pgsql.conf 但不触发 notifyExec 重新加载文件。这里有什么问题?

$sysctl_config = "/etc/sysctl.d/pgsql.conf"

exec { 'update_sysctl_shmall':
          unless  => "grep -q ^kernel.shmall ${sysctl_config}",
          command => "/bin/echo \"kernel.shmall = ${shmall}\" >> ${sysctl_config}",
        }

        file { '/etc/sysctl.d/pgsql.conf':
          ensure => present,
          notify  => Exec['reload_sysctl']
        }

        exec { 'reload_sysctl':
          provider    => shell,
          command => '/bin/sysctl --system',
          logoutput => 'on_failure',
          refreshonly => true,
        }

最佳答案

以下代码:

file { '/etc/sysctl.d/pgsql.conf':
   ensure => present,
   notify  => Exec['reload_sysctl']
}

仅确保 /etc/sysctl.d/pgsql.conf 文件存在。如果文件存在,它将什么都不做,这就是为什么 Exec 没有被触发重新加载文件的原因。 请检查以下有关 puppet 通知的链接 1 , 2 .

更新:

考虑使用 audit元参数:

file { '/etc/sysctl.d/pgsql.conf':
    audit  => 'content',
    ensure => present,
    notify => Exec['reload_sysctl']
}

关于ruby - puppet 通知 Exec 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33697825/

相关文章:

ruby - 将 WSDL 与 Ruby 结合使用

ruby-on-rails - 重定向或显示部分内容?

linux - Raspberry Pi 启动脚本复制

c - 为什么不能为 Linux 非阻塞套接字递归调用 'select'

perl - Perl 的内置 `Internals::` 包的文档在哪里?

ruby - Watir-Webdriver - 通过表格解析并单击​​开始/停止切换

ruby-on-rails - PDFKit wkhtmltopdf :root_url Unknown long argument --root-url

C 从客户端向服务器提交命令

javascript - 在 drupal 7 中分离内联 js

module - 模块前端 Controller 中的成功消息