Puppet教程:Puppet如何工作
在本教程中,我们将再次介绍puppet,并将尝试了解puppet配置管理工具的工作原理。
puppet的常规配置包括服务器(Puppet Master)和客户端(Puppet agent)。
它的工作原理如下:.Puppet代理是一个在所有客户端服务器(我们需要进行一些配置的服务器,或者将要使用puppet管理的服务器)上运行的守护程序。
所有要管理的客户端将在其上安装installed代理,并且在clients中称为节点。
Puppet Master:此计算机包含不同主机的所有配置。 Puppet主服务器将在该主服务器上作为守护程序运行。
Puppet代理:这是将在将使用puppet管理的所有服务器上运行的守护程序。 Puppet代理将在特定的时间间隔内向Puppet主服务器询问自身的配置。
借助SSL,在一个安全的加密通道中建立了agent代理与主代理之间的连接。
如果假设the代理已经应用了所需的配置,并且没有新的更改,那么它将什么都不做。
注意:我们还可以在需要时手动要求puppet代理去并从puppet主服务器获取配置。
人们管理Puppet代理以通过cron获取配置。
但是,通过在每个节点上将其作为守护程序运行来管理puppet代理以自动获取数据是一个好主意。
Puppet代理守护程序将离开并从Puppet主控器获取配置数据的默认间隔为30分钟。
如上图所示,p主服务器具有主机1(或者称其为第一个节点),主机2(节点2),主机3(节点3)的所有配置选项。
要注意的一个重要事实是,客户端(Puppet代理或者节点)会定期从Puppet主服务器中获取配置数据。
现在,每当任何节点的Puppet代理连接到Puppet主服务器以获取数据时,都会涉及多个步骤。
这些步骤在下面提到。
步骤1:只要有客户端节点连接到主节点,主服务器就会分析要应用于该节点的配置以及如何在节点上应用该配置。
步骤2:Puppet主服务器获取并收集要应用于该节点的所有资源和配置,并对其进行编译并使其成为目录。
该目录提供给该节点的Puppet代理。
步骤3:Puppet代理将根据目录将配置应用到节点上,然后进行回复,并将配置报告提交给Puppet主服务器。
这可以通过称为Facter的工具来实现。
每当代理连接到Puppet主服务器以获取配置数据时,都会使用Facter工具将有关节点(代理)的完整详细信息提供给Puppet主服务器。
Facter将提供有关代理节点的几乎所有信息。
该信息非常详细。
请参阅下面的Facter示例输出。
[root@myvm1 ~]# facter architecture => i386 augeasversion => 0.10.0 boardmanufacturer => Intel Corporation boardproductname => 440BX Desktop Reference Platform boardserialnumber => None domain => sarath.com facterversion => 1.6.6 fqdn => myvm1.sarath.com hardwareisa => i686 hardwaremodel => i686 hostname => myvm1 id => root interfaces => eth0,lo,sit0 ipaddress => 192.168.159.128 ipaddress_eth0 => 192.168.159.128 ipaddress_lo => 127.0.0.1 is_virtual => true kernel => Linux kernelmajversion => 2.6 kernelrelease => 2.6.18-128.el5 kernelversion => 2.6.18 lsbdistcodename => Tikanga
与上面显示的示例输出相比,facter的输出要详细得多。
Puppet主节点获取有关节点的完整信息,并借助该信息来决定如何应用配置。
例如,如果假设节点是debian,则要安装软件包puppet将使用apt-get而不是yum。
我们可以进行类似IP地址的操作,然后将此网关应用于服务器。
我们还可以将定制的事实添加到节点,并根据该事实进行配置(这使Puppet更具可定制性)。
我们需要在要使用p应用配置的所有节点上安装Facter工具。
没有Facter,Puppet服务器将无法通过它获取有关代理的所有信息。