V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Puppet

关于修复 puppet agent 因为网络不好而时不时 administratively disabled 的问题

  •  
  •   Livid · 2013-10-14 22:11:30 +08:00 · 7025 次点击
    这是一个创建于 3817 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以下为大概思路,可以用各种语言实现。

    在 crontab 中每 4 小时检查一次 /var/lib/puppet/state/puppetdlock 这个文件是否存在 [1],如果存在,获得其 mtime,如果 mtime 和当前时间已经差了一个小时以上(没有理由单次运行会超过 1 个小时),那就:

    service puppet stop
    puppet agent --enable
    puppet agent --test

    当然,需要加入保证 Service['puppet'] 一直运行,这样当 --test 的时候,除了会完成同步之外,也就可以重新启动 puppet agent daemon。

    [1] http://projects.puppetlabs.com/issues/3757
    3 条回复    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
    OP
       2013-12-07 04:12:06 +08:00
    其实一个更粗暴但是有效的方式是:

    ps -ef | grep puppet | grep -v grep | awk '{print $2}' | xargs kill -9
    puppet agent --enable
    puppet agent --test
    julyclyde
        2
    julyclyde  
       2013-12-07 10:51:56 +08:00
    一个锁文件,复用俩语义?
    efi
        3
    efi  
       2013-12-08 12:12:05 +08:00   ❤️ 1
    @Livid 不能直视。请用pkill -9 puppet。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3168 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:33 · PVG 20:33 · LAX 05:33 · JFK 08:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.