Questions tagged «puppet»

Puppet是一种配置管理工具(Unix和Windows),具有自己的域特定语言。

2
配置管理:基于推与拉的拓扑
更加成熟的配置管理(CM)系统(例如Puppet和Chef)使用基于拉的方法:客户端定期轮询集中式主服务器以获取更新。他们中的一些人也提供了一种无主的方法(因此,基于推送),但指出它不是“用于生产”(Saltstack)或“可伸缩性较差”(Puppet)。我从一开始就知道的唯一基于推送的系统是亚军Ansible。 基于拉式系统的特定可伸缩性优势是什么?为什么增加更多的pull-master比push-agent更容易? 例如,agiletesting.blogspot.nl写道: 在“拉”系统中,客户端彼此独立地联系服务器,因此与“推”系统相比,整个系统可扩展性更高 另一方面,Rackspace展示了他们可以使用基于推送的模型处理15K系统。 infastructures.org写道: 我们发誓使用诸如SUP,CVSup,rsync服务器或cfengine之类的工具来维护基础结构的拉方法。而不是将更改推送给客户端,每个单独的客户端计算机都需要负责在启动时轮询金牌服务器,然后在以后定期维护自己的转速级别。在采用这种观点之前,我们基于ssh,rsh,rcp和rdist开发了广泛的基于推式的脚本。我们发现使用r命令(或ssh)的问题是:当运行基于r命令的脚本将更改推送到目标计算机时,很奇怪的是,如果您拥有30台以上的目标主机,则其中的一台将在任何给定时间出现故障。维护调试机器列表成为噩梦。在编写代码以对此进行更正的过程中,您将最终得到详尽的包装器代码来处理:死主机超时;记录并重试已死的主机;分叉并运行并行作业,以尝试在合理的时间内击中许多主机;最后,检测并防止用尽所有出站rsh会话的源计算机上的所有可用TCP套接字的情况。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。分叉并运行并行作业,以尝试在合理的时间内击中许多主机;最后,检测并防止用尽所有出站rsh会话的源计算机上的所有可用TCP套接字的情况。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。分叉并运行并行作业,以尝试在合理的时间内击中许多主机;最后,检测并防止用尽所有出站rsh会话的源计算机上的所有可用TCP套接字的情况。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。最后,检测并防止用尽所有出站rsh会话的源计算机上的所有可用TCP套接字的情况。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。最后,检测并防止用尽所有出站rsh会话的源计算机上的所有可用TCP套接字的情况。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。然后,您仍然有一个问题,就是要为将来要安装的所有新主机将自己所做的任何事情放入安装映像中,并对要死掉而明天必须重建的任何主机重复执行此操作。在经历了实现基于r命令的复制的麻烦之后,我们发现这是不值得的。我们不打算再次使用r命令或任何其他推送机制来管理基础结构。它们不像基于拉的方法那样可扩展。或与此相关的任何其他推送机制。它们不像基于拉的方法那样可扩展。或与此相关的任何其他推送机制。它们不像基于拉的方法那样可扩展。 这不是实现问题,而是架构问题吗?为什么编写一个线程化的推送客户端比一个线程化的推送服务器更难?

5
up:修改配置文件后强制重启服务
我如何确保如果通过木偶从主存储库将新版本的配置文件下载到其中一台受管服务器,则相关服务将重新启动。 典型场景-假设有新的munin或apache配置。puppet客户端发现它,覆盖本地文件...以及...-如何确保服务重新启动/重新加载? 非常感谢!

2
up:节点名称似乎取决于反向DNS?
我似乎在理解如何使它起作用方面遇到了一些问题。我在工作中要在办公室NAT后面建立一台新服务器,其反向dns映射到office.mydomain.com,但是我希望该机器是ns2.mydomain.com出于伪造。 nodes.pp片段: node 'ns2.mydomain.com' inherits basenode { info('ns2.mydomain.com') } node 'office.mydomain.com' inherits basenode { info('office.mydomain.com') } 还有我在客户端的“ puppet.conf”: [main] #was node_name=ns2.mydomain.com #was fqdn=ns2.mydomain.com certname=ns2.mydomain.com node_name=cert 我在服务器上的系统日志报告: Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com Sep 16 22:59:12 support puppetmasterd[2800]: …
20 puppet 

3
如何在Puppet中有条件地存在文件/目录?
我试图在puppet中编写一个函数,fail如果传递的目录路径不存在,该函数将执行a 。 if File["/some/path"]始终返回true,并且if defined(File["/some/path"])仅在puppet中定义了资源时才返回true,无论它是否实际存在。 有没有一种简单的方法可以做到这一点if? 谢谢
18 puppet 


5
现有配置管理系统的优缺点是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我在这里查找CFEngine,Puppet,Chef,bcfg2,AutomateIt以及其他可能存在的其他配置管理系统之间的一些比较,很惊讶我在Server Fault上发现的很少。例如,我只知道上面的前三个链接-我在相关的Google搜索中找到了另外两个。 因此,我对人们认为最好的东西或他们喜欢的东西不感兴趣。我想知道以下内容: 配置管理系统的名称。 创建它的原因(与使用现有解决方案相对)。 相对优势。 相对弱点。 执照。 链接到项目和示例。

5
如何判断您在centos上运行的是哪个版本的木偶?
我刚开始在centos上玩偶,并对一些事情感到困惑。首先存在一个手册页puppet-master,puppetmaster尽管/etc/init.d中的守护进程是puppetmaster 运行该命令$ puppet-master --version将返回bash:puppet-master:命令未找到。 如何确定我为主服务器和客户端运行的版本?
17 centos  puppet 

3
使用p将现有用户添加到组中
是否可以使用人偶2.7.18将现有用户添加到组中? 我们有两个模块,每个模块定义一个类: 模块“用户”创建所有用户,包括用户foo和用户bar。 模块“ subversion”处理各种conf文件并创建组svn。 我们想将用户foo添加到模块“ subversion”内的svn组中。 我尝试了现有功能请求中所述的Membership参数: group { "svn": ensure => present, gid => xxxxx; } user { "foo": group => ["svn"], membership => minimum; } 但是我收到以下错误: 错误:无法从远程服务器检索目录:服务器上的错误400:重复声明:用户[foo]已在文件/pathto/modules/subversion/manifests/init.pp中的xx行中声明;无法在节点myserver.example.com上的/pathto/modules/users/manifests/init.pp:xxx处重新声明 这个功能已经实现了吗?如果没有,是否有一个好的解决方法?

5
如何为我的puppetmaster添加多个dns名称?
我的主人puppet.conf [master] certname = myname.mydomain.com ca_server = myname.mydomain.com certdnsnames = puppet;puppet.local;myname.dyndns.org;hivemind.local; 就我对certdnsnames定义的理解而言,以下应该起作用: puppet agent --server myname.dyndns.org --test 但我得到以下错误: err: Could not retrieve catalog from remote server: hostname was not match with the server certificate 如何避免这个错误?如何正确定义certdnsnames?我发现与此有关的文档不尽相同,但没有简单的示例。ii使用“,”进行分隔,我根本无法签名。我也看到过这样的语法 certdnsnames = puppet:puppet.intra.myserver.fr,puppet.myserver.fr:puppet,puppet:puppet,puppet.intra.myserver.fr,puppet.myserver.fr http://projects.puppetlabs.com/issues/5776 但对我来说,尚不清楚何时添加“人偶:”,何时不添加。

2
用p向/ etc / profile添加行?
我使用puppet安装当前的JDK和tomcat。 package { [ "openjdk-6-jdk", "openjdk-6-doc", "openjdk-6-jre", "tomcat6", "tomcat6-admin", "tomcat6-common", "tomcat6-docs", "tomcat6-user" ]: ensure => present, } 现在我想添加 JAVA_HOME="/usr/lib/java" export JAVA_HOME 到/etc/profile,只是为了避免这种情况。我还没有在文档中找到简单的答案。有推荐的方法吗? 通常,我如何告诉人偶将该文件放置在此处或修改该文件?我将puppet用于单个节点(处于独立模式)只是为了对其进行尝试并保留服务器设置的日志。
16 linux  bash  java  puppet 

7
在决定使用Chef或Puppet时,有哪些正确的问题要问?
我将开始一个新项目,该项目将部分需要部署大约三个不同类的许多相同节点: 数据节点,它将运行MongoDB的分片实例。 应用程序节点,它将运行Ruby on Rails应用程序和较旧的ASP.NET MVC应用程序的实例。 处理节点,它将运行应用程序节点请求的作业。 所有节点将在Ubuntu 10.04实例上运行,尽管它们将安装不同的软件包。 尽管我不认为自己是专家,但我对以前项目中的Chef有所了解。为了尽职调查,我一直在研究其他可能性。我们内部有很多人是Puppet的长期用户,所以他们鼓励我看看。 我在评估这两种选择时遇到了麻烦。Chef和Puppet共享许多相同的领域术语- 包,资源,属性等,它们有着共同的历史,源于对同一问题采用不同的方法。因此从某种意义上说它们非常相似。但是,像本文一样,我发现的许多比较信息都有些过时。 如果您今天开始这个项目,您会问自己哪些问题来决定应该使用Chef还是Puppet进行配置管理?(注:我不想要回答这个问题:“我应该用厨师或木偶?”)


3
人偶和推出的服务?
我们有一个配置有Puppet的生产环境,并且希望能够在我们的开发机器上建立一个类似的环境:Red Hats,Ubuntu和OSX的混合。可以预料的是,OSX在这里很奇怪,而令人遗憾的是,要使其正常工作,我会遇到很多麻烦。 我的第一次尝试是使用macports,并使用以下声明: package { 'rabbitmq-server': ensure => installed, provider => macports, } 不幸的是,这会产生以下错误: Error: /Stage[main]/Rabbitmq/Package[rabbitmq-server]: Could not evaluate: Execution of '/opt/local/bin/port -q installed rabbitmq-server' returned 1: usage: cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-s] [-d delim] [file ...] while executing "exec …
15 mac-osx  puppet 

3
具有加密的ubuntu主目录的NFS
我在使用Vagrant进行NFS安装时遇到了麻烦: 在我的本地计算机上,我已经安装了NFS: apt-get install nfs-common nfs-kernel-server 在我的Vagrantfile中将其设置为要使用: config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true) 在vagrant up我得到: exportfs: /home/<user>/path/to/dir does not support NFS export Mounting NFS shared folders failed. This is most often caused by the NFS client software not being installed on the guest machine. Please verify that the NFS client …

1
木偶:确保文件为空
我想确保motd文件为空。我想这样做: file { "/etc/motd": ensure => empty } 这显然行不通。 有没有一种简单的方法来确保文件为空,而不是使用“源”声明并将空文件存储在文件存储库中?
15 puppet 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.