同一节点有多个 site.pp

同一节点有多个 site.pp

我需要为同一主机编写多个 site.pp 文件。它给出了以下错误

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Node 'default' is already defined at line 2; cannot redefine at line 2 on node node-002.example.com

例如 :

我的第一次site.pp

vi hosts-site.pp
default{
  }
 node "node-002.example.com" {
           ## Rules here to update /etc/hosts
         }

接下来Site.pp使用相同的节点但不同的操作。

 vi fstab-site.pp
default{
  }
 node "node-002.example.com" {
           ## Rules here to update /etc/fstab
         }   

如何实现相同的功能。我们需要为相同的节点编写多个操作,为此我们需要维护不同的 site.pp

答案1

Puppet 不应该有多个 site.pp

如果你的目标是手动应用你的某个配置,你可以使用 --tags 选项。顺便说一句,你应该将你的代理配置为无操作因此当您不需要时它就不会应用您的更改。

因此你可以拥有如下的 site.pp:

node "node-002.example.com" {
  class {'hosts_configuration'}
  class {'fstab_configuration'}
}

其中hosts_configurationfstab_configuration是配置您想要的模块。

然后,当你想应用主机配置时,你可以在 node-002 上使用

puppet agent -t --tags=hosts_configuration

它将应用主机所需的配置。

如果您确实想要拥有多个 site.pp,您可以使用环境来执行此操作:

https://docs.puppet.com/puppet/4.10/environments.html#about-environments

相关内容