【问题标题】:Puppet: stopping service on individual nodesPuppet:在单个节点上停止服务
【发布时间】:2014-01-16 01:41:01
【问题描述】:

木偶有时会让人很沮丧。

我有多个使用服务“贵宾犬”的节点,并且已经以这种方式进行了配置。

# SITE.PP
node 'tweedle.example.com' {
    include basicstuff
    include poodle
}

node 'beetle.example.com' {
    include basicstuff
    include poodle
}

## POODLE MODULE, manifests/init.pp
class poodle {
    class {'poodle::install': }
    class {'poodle::config': }
    class {'poodle::service': }

    Class ['poodle::install'] -> Class ['poodle::config'] ~> Class ['poodle::service']
}

...

class poodler::service {
    service {'poodle':
        ensure     => 'running',
        enable     => true,
        restart    => "/etc/init.d/poodle stop && sleep 5 && /etc/init.d/poodle start",
        subscribe  => File['/opt/poodle/poodle.py'],
    }
}

现在,假设我不再需要在“甲虫”机器上运行贵宾犬。如何仅在该机器上停止服务?

我已尝试通过确保 => 停止,但出现语法错误:

node 'beetle.example.com' {
    include basicstuff
    class poodle::service {
         ensure => 'stopped'
    }
}

或许?

node 'beetle.example.com' {
    include basicstuff
    include poodle::service {
         ensure => 'stopped'
    }
}

【问题讨论】:

    标签: service puppet


    【解决方案1】:

    向你的服务类添加一个参数,可以用于服务上的 ensure 参数,像这样

    class poodler::service ($ensure = 'running') {
        service {'poodle':
            ensure     => $ensure,
            enable     => true,
            restart    => "/etc/init.d/poodle stop && sleep 5 && /etc/init.d/poodle start",
            subscribe  => File['/opt/poodle/poodle.py'],
        }
    }
    

    然后,不要像第二次尝试那样包含类,而是将类创建为资源并设置 $ensure 的值。

    node 'beetle.example.com' {
        include basicstuff
        class {'poodle::service':
             ensure => 'stopped',
        }
    }
    

    这应该会终止服务。

    由于 $ensure 参数的默认设置为运行,因此您无需在实际希望它运行时指定。

    如果你愿意,可以参数化你的类的其他部分,如果你愿意,这可能会导致应用被完全删除。

    关于这个主题的好读物是:Learning Puppet — Class Parameters

    【讨论】:

    • 谢谢,这正是我需要的真实世界类型的信息。当我阅读 puppet 文档时,一切都如此简单和稀疏,我永远无法理解如何将它应用到我们的环境(由其他人构建)。我越来越好,实际的例子真的很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 2019-09-16
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多