首页 > 解决方案 > 木偶/因素:“创建(纠正)”

问题描述

我使用 puppet 来更新/维护自己(除其他外)。出于某种原因,每次客户端运行时,我都会执行以下两个操作:

Notice: /Stage[main]/Servers::Packages::Puppet/Package[facter]/ensure: created (corrective)
Notice: /Stage[main]/Servers::Packages::Puppet/Package[puppet]/ensure: created (corrective)

有问题的定义如下所示:

    package { 'puppet' :
            ensure => 'latest',
            require => Package['facter'];
    }

    package { 'facter' :
            ensure => 'latest',
    }

    file { '/etc/default/puppet' :
            ensure => 'file',
            mode => '644',
            source => 'puppet:///modules/servers/packages/puppet/default';
    }

    file{ '/etc/puppetlabs/puppet/puppet.conf' :
            mode => '644',
            content => template("servers/packages/puppet/puppet_conf.erb"),
            require => Package[ 'puppet' ];
    }

    service{ 'puppet' :
            ensure => 'running',
            enable => true,
            require => Package[ 'puppet' ],
            subscribe => [
                    File[ '/etc/default/puppet'],
                    File[ '/etc/puppetlabs/puppet/puppet.conf'],
            ];
    }

我的定义有什么问题?为什么每次运行都会重新安装 puppet / facter?

标签: puppet

解决方案


自 Puppet 4 以来,Puppet, Inc. 仅提供客户端组件的一体化软件包,未命名为“puppet”或“facter”。Puppet 6 的包被命名puppet-agent——这是你应该管理的,而不是名为“puppet”或“facter”的包。

您报告的消息表明 Puppet 没有看到最新的“puppet”或“facter”包,这是很自然的,因为它们不存在。他们还表明 puppet 认为它已经纠正了这个问题——它将尝试通过安装/更新具有这些名称的软件包来解决这个问题,并且显然成功了。由于 puppet-agent 包声明它们提供名为“puppet”和“facter”的功能,因此会出现这种看似不一致的情况,您的包管理器正在使用这些功能将这些包名称与 puppet-agent 包相关联。结果,安装/更新成功而没有实际安装任何新内容,从而使系统准备好在下次运行时再次执行相同的操作。

我怀疑日志输出上的“(纠正)”标记反映了包管理器退出状态,表明成功而没有做任何事情。


推荐阅读