使用Puppet进行多服务器管理

木偶软件可以让你管理你的网络上的所有主机上的软件配置。它简化了重复操作,并确保中大量机器的状态和配置的完整性。一个集中的,单一的主服务器将配置更改推和命令奴隶节点,与依靠SSL证书安全两侧。

Puppet有企业版和apache许可的开源版本;我们采用的是后者。其强大的面向对象配置语言支持继承和代码重用。Puppet可以运行和管理各种操作系统——Linux、FreeBSD、Solaris,甚至Windows(部分)——因此它适合运行不同Linux发行版甚至不同操作系统的异构服务器环境。

使用Puppet,您可以指定一个清单,其中声明您希望在系统上进行的配置,Puppet会找到达到这种状态的最佳方法。例如,如果你想在一个特定的服务器上安装httpd包,你不需要让Puppet运行yum命令;相反,您可以在一个Puppet配置文件中指定httpd包是必需的,并让Puppet找出安装它的最佳方式。

如何安装木偶

如果你想尝试Puppet,最好的安装方式是通过其官方库。支持许多Linux发行版;为CentOS您可以使用Red Hat Linux及其衍生工具的存储库。

要在CentOS 6上安装当前版本的Puppet repository,请运行rpm -ivh http://yum.puppetlabs.com/el/6/products/i386/puppetlabs -释放- 6 - 6. - noarch.rpm。有了Puppet repo之后,运行该命令安装傀儡对木偶从节点和安装木偶木偶服务器木偶主服务器上。这些命令安装不仅木偶,但其所有的依赖关系,这其中包括Ruby编程语言,其上木偶的基础。了解红宝石可以帮你设计了先进的配置ERB模板,但Ruby是只是基本依据和你不需要知道它以木偶的工作。

一个值得注意的依赖包是Facter,它是一个独立的跨平台工具,可以收集诸如主机操作系统、分布、架构和网络接口等信息。来自Facter的信息对本地节点和主节点都可用。Puppet根据这个信息决定如何将指定的状态应用到每个本地机器。

要确保puppet在CentOS系统中自动启动和停止,请运行以下命令chkconfig傀儡上从节点上,并在主服务器上运行在&& checkconfig戏梦人生上chkconfig的傀儡

如果你用iptables的防火墙,一定要允许从节点连接到主。默认情况下,TCP端口8140.上的主木偶服务侦听允许它在CentOS iptables的,运行以下命令:

输入-p TCP -dport 8140 -j接受服务iptables保存

最初的傀儡设置

Puppet在开始使用之前需要进行一些小的配置调整。首先,确保从节点可以连接到主节点。默认情况下,从服务器在完全限定域名“puppet”上查找主主机。You can specify a different FQDN for the master by placing the directive服务器= somehost.example.org[主要]每个节点上/etc/puppet/puppet.conf文件中的配置块。或者,您可以简单地在每个节点的/etc/hosts文件中硬编码默认的“puppet”地址,添加一行,如192.168.1.200木偶到该文件的每个实例。

主服务器上的SSL证书必须与节点连接到的FQDN对应。如果您为主服务器保留默认的“puppet”FQDN,那么在/etc/puppet/puppet.conf文件中添加两行代码。节标题(主)表明,对于主设备的指令如下。该指令本身certname =木偶

现在的节点应该知道在哪里找到主人并能够建立一个有效的安全连接,所以你可以手动启动木偶服务首次。在主运行服务戏梦人生开始&&服务傀儡启动。在运行的节点上服务傀儡启动

当木偶服务节点上开始尝试连接到主,但是主不允许他们自动连接。你要授权的连接,并签署了节点的证书建立信任关系。

要查看主服务器上的当前签名请求,请运行该命令傀儡cert——列表。这将产生类似如下的输出:

“服务器2”(SHA256)82:A8:FA:BB:CE:0D:D5:0A:DB:7A:3E:8D:A5:62:5B:AC:91:7D:9C:65:51:5F:80:50:F7:DB:ED:36:87:EC:B4:C0 “服务器3”(SHA256)7C:5C:05:58:CC:5A:1C:D7:7C:98:CC:C4:34:17:D5:35:1C:11:E8:DC:04:92:42:1C:8E:58:36:EA:5C:11:03:9B

要签署一个节点的证书,运行命令木偶证书--sign其次是节点的名称:木偶证书--sign服务器2为例。确保主机的名称可以从主机中解析,以避免出现问题。最简单的方法是在主机文件中添加静态记录。

在主服务器上,要验证证书已经签名,可以使用命令傀儡证书——名单——全部。在输出中,一个证书名称前的加号表示它已经被签名:+ “服务器1”(SHA256)为例。

在节点上,要验证它们能够连接到主节点,请检查/var/log/messages文件,Puppet将其日志默认发送到该文件。当您成功地创建了与master的关系时,您应该看到如下条目:

12月11日12点03分二十秒server2的木偶剂[2429]:在0.14秒成品目录运行

这意味着节点可以连接到主目录并下载和运行目录。目录是什么?很高兴你发问!

伪清单和目录

木偶的配置文件被称为清单。它们包含木偶使用带来节点的期望状态的指示。舱单被编译成一个目录。编译过程中解决依赖,并正确地重新排序的说明。例如,假设你想安装httpd软件包,并把一个要求,即PHP包存在。在这种情况下木偶检查并安装PHP第一必要时再在httpd软件包继续进行安装。

当节点连接到主目录时,它下载目录并在本地运行。运行目录意味着进行检查以确保当前节点状态与主服务器上配置的状态相对应。默认情况下,傀儡从服务器每30分钟连接到主服务器以进行同步。可以在/var/log/messages文件中跟踪Puppet的活动。

/清单被存储在主目录中的等/木偶/清单/使用,默认情况下,.PP的延伸。当你想包括一个名为something.pp文件,你可以删除扩展;木偶寻找要导入的文件时自动追加.PP。

该文件site.pp是主要的显明木偶加载默认。要开始使用一个简单的例子,用下面的内容创建它:

节点“server2”{}节点“server3”{包含后缀}导入“后缀”

节点指令有一个节点的FQDN,并指定每个节点的配置。而进口指令?就像在编程语言中一样,要使配置更具可读性和可重用性,您应该将配置的原子部分(称为Puppet类)分离到单独的文件中,并使用进口指令。这里我们导入后缀文件的内容。pp,它位于/etc/puppet/manifests/中,与site.pp相同的目录。postfix类看起来像这样:

service {"postfix": ensure =>运行,enable => true,}}

首先,应该安装后缀包(确保=>安装)。你不必告诉傀儡要运行什么命令;它根据Facter提供的详细信息自动查找并使用正确的包管理器。

上述清单亦显示应启动postfix服务(确保=>运行),并添加到默认运行级别(使= > true),这意味着它要启动并在系统停止。

一旦有了上面的类,您就可以将它包括在节点的定义中,就像我们在node server3中所做的那样,以确保节点符合用于后缀的清单。

清单上最后一个音符:当你在文件site.pp变化,木偶自动检测并通过重新加载其配置强制他们。如果您更改导入site.pp文件,你必须用命令来更新site.pp的时间戳触摸site.pp让傀儡认识到这些变化。

Puppet可以通过它的manifest在异构系统上编辑文本文件、提供静态文件、执行安装和调整配置。您可以从官方文档

报告

木偶支持它的目录运行报告。配置后,该节点可以将报告发送给有关已成功执行更改和操作,以及那些没有主人。为了使报告,你必须配置的节点发送报告,并接受他们的主人。在节点上,编辑文件/etc/puppet/puppet.conf并添加了[试剂]节包含的新行报告=真。在服务器上,编辑/etc/puppet/puppet.conf,但这次去(主)分段并添加两行。第一,reportdir = /etc/puppet/reports,指定该报告将被存储在目录中。第二,报告=商店,定义接收日志的默认操作。

在重新启动节点和主服务器上的Puppet之后,您应该开始在目录/etc/puppet/reports中看到报告每个节点在那里创建自己的目录,并以其主机名命名。

木偶报告,进来yaml格式,是详细和冗长的。每个报告以应用清单的文件名开始;例如,文件:/etc/puppet/manifests/postfix.pp。用一条线信息tag描述了发生的事情:信息:"ensure changed 'stopped' to 'running'"。此消息意味着Puppet已经根据清单中的指令启动了服务。最后一行指定事件的时间,例如时间:2012-12-16 07:00:57.326020 +02:00

Puppet报告提供的信息比上面的简单示例多得多。你不会想手动分析它们;工具,如木偶的仪表板可以帮助您可视化报告。

本文仅简单介绍了Puppet的许多特性。Puppet非常强大,但是需要一些知识才能很好地操作它。幸运的是,大量的教育资源可以帮助你学会木偶;从探索官方木偶文档

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。

版权所有©2012足球竞彩网下载

工资调查:结果在