前篇文章写了使用puppet管理500多台服务器,当然只是一部分,最主要的还是puppet脚本的编写,这个我会在以后的文章中一点一点写出来。

今天要写的是puppet的一个bug,版本是puppet 3.1.1

在使用puppet的过程中,发现一处bug,希望大家了解一下,以免出现这种情况。

刚在看一台服务器的crontab的时候,本身crontab配置如下

关键问题出现在红框中,

我做了个操作,先/etc/init.d/puppet stop

然后注释掉 * * * * * /infra/crontab/loadquery.sh >/dev/null 2>&1 这一行。

再/etc/init.d/puppet start

结果配置文件变成了

本来7点半执行的是sync.sh,结果现在变成了loadquery.sh,而注释的那行被移动到上面去了。造成sync.sh的crontab消失了。

也就是说puppet的对于crontab的判断机制有问题,它没有新增一条crontab配置,而是修改了紧跟在#puppet Name后面的别的crontab配置。

我猜想puppet的逻辑是这样的:

首先它会根据#Puppet Name这一条注释行去判断,紧跟着这个注释的有效的crontab语句会被修改成puppet server上定义的crontab内容。

而后我做了个测试,在注释* * * * * /infra/crontab/loadquery.sh >/dev/null 2>&1 这一行 之后,再将#puppet Name:loadquery移动到crontab文件的最下面,发现现在其他的配置都不会被修改,而* * * * * /infra/crontab/loadquery.sh >/dev/null 2>&1这一句出现在了#puppet Name:loadquery下面。这样证实了我的猜想。

puppet这样的处理方式肯定是有问题的,不应该使用注释行来作为判断标准,至少有的SA会认为注释行无影响,可能会做修改,造成意想不到的问题。

所以以后调整crontab的时候不要修改任何puppet自动配置的crontab内容,包括#puppet name这些注释行。

puppet的一个Bug的更多相关文章

  1. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  2. MySQL关于exists的一个bug

    今天碰到一个很奇怪的问题,关于exists的, 第一个语句如下: SELECT ) FROM APPLY t WHERE EXISTS ( SELECT r.APPLY_ID FROM RECORD ...

  3. 由一个bug引发的SQLite缓存一致性探索

    问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug ...

  4. Win10系统菜单打不开问题的解决,难道是Win10的一个Bug ?

    Win10左下角菜单打不开,好痛苦,点击右下角的时间也没反应,各种不爽,折磨了我好几天,重装又不忍心,实在费劲,一堆开发环境要安装,上网找了很多方法都不适用.今天偶然解决了,仔细想了下,难道是Win1 ...

  5. 你可能不知道的 NaN 以及 underscore 1.8.3 _.isNaN 的一个 BUG

    这篇文章并不在我的 underscore 源码解读计划中,直到 @pod4g 同学回复了我的 issue(详见 https://github.com/hanzichi/underscore-analy ...

  6. 标准模板库(STL)的一个 bug

    今天敲代码的时候遇到 STL 的一个 bug,与 C++ 的类中的 const 成员变量有关.什么,明明提供了默认的构造函数和复制构造函数,竟然还要类提供赋值运算符重载.怎么会这样? 测试代码 Tes ...

  7. 是uibutton跟tableviewcell同步使用一个bug

    这个问题是uibutton跟tableviewcell同步使用一个bug,不关delay一点毛事,证据就是点击事件没问题,so,搜到一个方法解决了这个问题.uibutton分类symbian2+ios ...

  8. 在chrome下-webkit-box布局的一个bug

    chrome,也就是webkit内核下作的检测, chrome版本是40, -webkit-box这种布局在移动端用的比较多,主要是因为pc端的浏览器内核参差不齐. 因为在写HTML的时候看上了-we ...

  9. 关于MySQL count(distinct) 逻辑的一个bug【转】

    本文来自:http://dinglin.iteye.com/blog/1976026#comments 背景 客户报告了一个count(distinct)语句返回结果错误,实际结果存在值,但是用cou ...

随机推荐

  1. CNN检测模型统计检出率

    X, y = get_feature_charseq() #max_document_length=64 volcab_file = "volcab.pkl" assert os. ...

  2. GeoServer基础教程(二):GeoServer的Web管理界面快速入门

    转载:http://blog.163.com/daimiao_study/blog/static/248923117201542522742373/ GeoServer的控制和管理是基于网页形式,所有 ...

  3. csv+jenkins+ant测试接口

    1.文件目录 jmeter_test case 用于存放case,csv或者txt格式,jmeter能读取的 result_log 用于存放报告 html 存放html报告 jtl 存放jtl文件 s ...

  4. PHP获取一年中每个星期的开始和结束日期的方法

    这篇文章主要介绍了PHP获取一年中每个星期的开始和结束日期的方法,涉及php对日期操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了PHP获取一年中每个星期的开始和结束日期的方法. ...

  5. cocos2d-x 之 CCParticleBatchNode CCParallaxNode

    //不使用 CCParticleBatchNode : 注意比较 左下角的显示信息 ; i<; ++i) { CCParticleSystem* particleSystem = CCParti ...

  6. Agc017_E Jigsaw

    传送门 题目大意 有$n$块拼图,每一块都由左中右三个部分组成,每块拼图中间部分是高为$H$的长方形,对于第$i$块品推左侧是高为$A_i$距离底部为$C_i$的长方体,右侧是高位$B_i$距底部为$ ...

  7. Gym - 100851L:Landscape Improved (二分+单调性)

    题意: 一个宽度为N的网格图,i上有h[i]高的方块.现在你有W个方块,问怎么放使得最终的最高点最高.   当一个格子的下方,左下方和右下方都有方块那么久可以把方块放到这个格子上.最左端和最右端不能放 ...

  8. 【转】Lucas定理 & 逆元学习小结

    (From:离殇灬孤狼) 这个Lucas定理是解决组合数的时候用的,当然是比较大的组合数了.比如C(1000000,50000)% mod,这个mod肯定是要取的,要不算出来真的是天文数字了. 对于一 ...

  9. 洛谷【P1601】A+B Problem(高精)

    题目传送门:https://www.luogu.org/problemnew/show/P1601 高精度加法板子.我们灵性地回忆一波小学学加法列竖式的场景(从\(6\)岁开始口算从未打过草稿的大佬请 ...

  10. saltstack集中化管理平台

    1.安装与启动 yum install salt-master -y 安装服务端 chkconfig salt-master on 自启动 service salt-master start 启动 y ...