Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1092154
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: 系统运维

2015-02-09 17:38:12

    前几天用fpm打包了一个rpm, 然后puppet部署,又因为需要更新了,重新打包,并且更新了版本号,故而init.pp也更新如下:

  1. cat modules/slow_query_converter/manifests/init.pp
  2. # Class: slow_query_converter
  3. class slow_query_converter {
  4. package { 'slow_query_converter':
  5. ensure => latest, #之前是installed
  6. }
  7. ->
  8. file { '/opt/slow_query_converter/conf/main.cfg':
  9. ensure => present,
  10. mode => '0644',
  11. group => root,
  12. owner => root,
  13. source => "puppet:///modules/slow_query_converter/main.cfg",
  14. notify => Service["slow_query_converter"];
  15. }
  16. ->
  17. service {'slow_query_converter':
  18. ensure => running,
  19. enable => true;
  20. }
  21. }
  在agent上执行,不生效,找了半天才发现yum cache的问题,直接yum clean all再执行就可以了。

 此外还有个问题,service不会重启,怀疑是/opt/slow_query_converter/conf/main.cfg没更新,直接ls -l 看timestamp果然如此。

 原因: rpm build 包的时候会有个选项是否更新配置文件(常见的是保留为.rpmsave),但这里是fpm打包,应该是没指定。所以文件不变,service也不会restart了。
 在这里可以看到详细解释,就是rpm spec文件 ~jw35/docs/rpm_config.html 

 use %config(noreplace) instead of %config in the rpm .spec file, and the file won't be replaced. 

 针对这个问题,解决办法很简单,在main.cfg加一行注释应该就可以了。

## 
后来发现自己想错了,main.cfg是个文件跟rpm build无关。以上仅仅是思路而已。
阅读(1891) | 评论(0) | 转发(0) |
0

上一篇:Ansible快速入门

下一篇:puppet 结构设计

给主人留下些什么吧!~~