Puppet-如何将模块应用于Puppet客户端节点?

Puppet-如何将模块应用于Puppet客户端节点?,puppet,Puppet,从木偶开始,对这个世界来说真的很新鲜 我有 CentOS 6木偶大师 CentOS 6傀儡客户端 在Master中,有一个模块: puppet module list /etc/puppet/modules âââ mstanislav-yum (v1.0.0) 所以我想对我的puppet客户端应用相同的模块,但我不能或者我不知道为什么 root@puppetclient: puppet agent --test Info: Retrieving plugin Info: Caching

从木偶开始,对这个世界来说真的很新鲜

我有

  • CentOS 6木偶大师
  • CentOS 6傀儡客户端
在Master中,有一个模块:

 puppet module list
/etc/puppet/modules
âââ mstanislav-yum (v1.0.0)
所以我想对我的puppet客户端应用相同的模块,但我不能或者我不知道为什么

root@puppetclient: puppet agent --test
Info: Retrieving plugin
Info: Caching catalog for puppetclient
Info: Applying configuration version '1355737643'
Finished catalog run in 0.10 seconds
但客户没有任何变化:-/


有什么想法吗?

您可以使用以下命令查看详细信息输出

傀儡代理--测试--跟踪

您可以尝试--noop模式(干运行模式)

这将显示它应该做的更改,但物理上不会更改任何内容。删除--noop将完成所有这些更改

查看文档以了解上述命令中其他选项的说明。

您尚未声明模块(将其分配给您的节点)

将此添加到site.pp:

node 'fqdn of client' {
  include yum
} 

然后,您可以运行
puppet agent-t
查看它的运行情况。

将模块应用于节点的两种主要方法是将以下内容之一添加到
site.pp

node 'node <certname> (normally the fqdn)' {
    require <module name>
}
node'node(通常是fqdn)'{
要求
}

节点“节点”{
包括
}
然后运行节点
puppet代理--test

require
与include类似,但它创建了依赖关系,并允许多次声明相同的类,如果您想要重叠的角色类,这很好

  • 首先从puppet forge安装模块
  • 打开site.pp并添加以下行
  • 然后在您的傀儡代理上运行以下命令

    sudo傀儡代理-测试


    尝试使用Hiera和yaml文件,我认为它更灵活,组织性更好

    编辑site.pp文件:

    node "default" {
        hiera_include('classes')
    }
    
    drwxr-xr-x. 3 root root 4096 May 19 07:23 nodes
    -rw-r--r--. 1 root root   62 Jun  4 16:31 site.pp
    
    之后,您可以使用以下简单方法调用每个特定node.yaml文件中的类:

    classes:
      -class1
      -class2
    

    我在Ubuntu上使用它,效果很好。

    如果您在另一个位置添加了节点声明,而不是site.pp(这是推荐的方法),那么请记住将“导入”配置添加到site.pp,它将引用节点清单

    这就是我的配置的样子。包含节点目录和site.pp文件的主清单目录:

    node "default" {
        hiera_include('classes')
    }
    
    drwxr-xr-x. 3 root root 4096 May 19 07:23 nodes
    -rw-r--r--. 1 root root   62 Jun  4 16:31 site.pp
    
    这是“我的节点目录”中的节点声明:

    node 'fqdn of client' {
      include yum
    } 
    
    最后,主清单目录中的site.pp将导入节点,如下所示:

    import 'nodes/*.pp'
    
    node default { }
    

    必须创建包含要应用的类的“包含”的节点定义。

    Run

    puppet apply -e "include mstanislav-yum"
    

    如果您想单独运行模块,但通常会在site.pp清单中包含节点定义。

    我的产品中的实时示例:

    node 'client.io' {
    
    class { '::selinux':
    mode => 'disabled',
    type => 'targeted',
    }
    
    class { 'zabbix::agent':
    server => '192.168.245.11',
    serveractive => '192.168.245.11',
    }
    
    include firewall
    include mysql::server
    
    }
    
    node 'client.io' {
    
    class { '::selinux':
    mode => 'disabled',
    type => 'targeted',
    }
    
    class { 'zabbix::agent':
    server => '192.168.245.11',
    serveractive => '192.168.245.11',
    }
    
    include firewall
    include mysql::server
    
    }