Chef infra 在Chef中配置logrotate

Chef infra 在Chef中配置logrotate,chef-infra,Chef Infra,我正在将厨师超市的菜谱添加到现有的菜谱中。我希望logrotate_应用程序生成包含“postrotate”脚本的配置 这是我食谱中的内容: logrotate_app 'myapp' do path '/var/log/glusterfs/*.log' options ['missingok', 'compress', 'delaycompress', 'notifempty','postrotate'] frequency 'daily' rotate 7 create

我正在将厨师超市的菜谱添加到现有的菜谱中。我希望logrotate_应用程序生成包含“postrotate”脚本的配置

这是我食谱中的内容:

logrotate_app 'myapp' do
  path '/var/log/glusterfs/*.log'
  options ['missingok', 'compress', 'delaycompress', 'notifempty','postrotate']
  frequency 'daily'
  rotate 7 
  create '644 root adm' 
end 
这是我当前配置的结果:

"/var/log/myapp/*.log" { 
  daily 
  create 644 root adm 
  rotate 7 
  missingok 
  compress 
  delaycompress 
  notifempty 
  postrotate 
} 
我希望最终输出如下:

/var/log/myapp/*.log { 
  sharedscripts 
  daily
  rotate 7 
  missingok 
  compress 
  delaycompress 
  notifempty 
  postrotate 
  /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  endscript 
} 
在配方中“postrotate”之后的两行下面添加什么语法

试试这个:

logrotate_app 'myapp' do
  path '/var/log/glusterfs/*.log'
  options ['missingok', 'compress', 'delaycompress', 'notifempty', 'postrotate']
  postrotate <<-EOF
    /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
    /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  EOF
  frequency 'daily'
  rotate 7 
  create '644 root adm' 
end 
logrotate\u应用程序“我的应用程序”do
路径'/var/log/glusterfs/*.log'
选项['missingok','compress','delaycompress','notifempty','postrotate']
后旋转&1 | |真
/usr/bin/killall-HUP myapp>/dev/null 2>&1 | | true
EOF
“每日”频率
轮换7次
创建“644根adm”
结束
此处提供了可能的“脚本”属性的当前列表:


但是,我不明白为什么要将HUP信号发送到同一进程两次。

有几个使用postrotate指令的示例,因此您可以尝试添加以下内容:

postrotate [
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true',
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true', 
]

谢谢罗兰,成功了。现在我正在为我的食谱中的lograte_应用程序编写chefspec测试。我的rspec测试失败,因为当我添加
postrotate时,这里是我的chef规范出错
它“创建适当的logrotate配置”确实需要(chef_run)。要启用_logrotate_应用程序('glusterfs')。使用(创建:'644 root adm',频率:'daily',路径:['/var/log/glusterfs/*.log','/var/log/glusterfs/bricks/*.log'],旋转:7个选项:%w(missingok compress delaycompress notifempty),postrotate
postrotate
postrotate [
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true',
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true', 
]