是否有可能添加一个现有的用户与木偶2.7.18组? 我们有两个模块,每个模块定义一个类: 模块“用户”创build所有用户,包括用户foo和用户栏。 模块“subversion”处理各种conf文件并创build组svn。 我们想添加用户foo在模块“subversion”中将svn分组。 我已经尝试了现有function请求中所述的成员参数: group { "svn": ensure => present, gid => xxxxx; } user { "foo": group => ["svn"], membership => minimum; } 但是我得到以下错误: err:无法从远程服务器检索目录:SERVER上的错误400:重复声明:User [foo]已经在xx行的文件/pathto/modules/subversion/manifests/init.pp中声明; 无法在节点myserver.example.com上的/pathto/modules/users/manifests/init.pp:xxx处重新声明 这个function是否已经实现? 如果没有,是否有一个很好的解决方法?
我无法通过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 software is properly installed, and […]
我们有一个应用程序正在运行几个(5左右,将增长)框。 所有机器的硬件都是相同的,理想情况下软件也是一样的。 我一直在pipe理他们,直到现在,不想再(静态IP地址,禁用所有必要的服务,安装所需的软件包…)。 任何人都可以平衡以下选项的利弊,或者build议更聪明的东西? 1:单独在所有的盒子上安装centos,并与厨师/ cfengine / puppetpipe理configuration。 这样做会很好,因为我想借口学习使用其中一个应用程序,但是我不知道这是否是最好的解决scheme。 2:使一个盒子完美,并形象化。 通过PXE服务映像,每当我想修改,我可以重新启动一个新的形象的框。 群集家伙通常如何处理/ etc / sysconfig / network-scripts / ifcfg *文件中的mac地址? 我们也使用infiniband,如果hwaddr错误,它也拒绝启动。 这些可以在启动时正确生成吗? 我倾向于PXE解决scheme,但我认为与munin或nagios的监控将会更复杂一点。 任何人都有这种types的问题的经验? 所有服务器都有固态硬盘,速度快而且function强大。 谢谢,马特。
我即将开始一个新的项目,部分需要部署大约三个不同类别的许多相同的节点: 数据节点 ,它将运行MongoDB的分片实例。 应用程序节点 ,它将运行一个Ruby on Rails应用程序和一个较旧的ASP.NET MVC应用程序的实例。 处理节点 ,它将运行应用程序节点请求的作业。 所有节点都将在Ubuntu 10.04的实例上运行,不过它们将安装不同的软件包。 我对以前的项目有一些熟悉,尽pipe我不认为自己是专家。 为了做尽职调查,我一直在研究其他的可能性。 我们有许多内部人员是木偶使用者,他们鼓励我去看看。 不过,我在评估这两种select方面遇到了麻烦。 厨师和木偶分享许多相同的领域术语 – 包装 , 资源 , 属性等等,他们有一个共同的历史,源于对相同的问题采取不同的方法。 所以在某种意义上它们是非常相似的。 但是我发现的大部分比较信息,就像这篇文章 ,有点过时了。 如果你今天开始这个项目,你会问自己什么问题来决定是否应该使用Chef或Puppet进行configurationpipe理? (注意:我不想回答“我应该使用厨师还是木偶?”)
我如何确保如果新版本的configuration文件是通过从主存储库的puppet下载到托pipe服务器的相关服务之一重新启动。 典型的情况 – 假设有新的munin或apacheconfiguration。 傀儡客户发现它,覆盖本地文件…和… – 如何确保服务重新启动/重新加载? 非常感谢!
我似乎遇到了一些问题,理解如何使这个工作。 我正在build立一个新的服务器,坐在办公室的NAT后面,它的反向DNS映射到office.mydomain.com ,但是我想让这台机器成为ns2.mydomain.com 。 nodes.pp snippet: 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]: Compiled catalog […]
木偶需要在被pipe理的客户(木偶)和服务器(木偶大师)之间的证书。 您可以在客户端上手动运行,然后到服务器上签名证书,但是如何自动执行群集/云计算机的此过程?
有没有办法迫使傀儡先做某些事情? 例如,我需要它在所有服务器上安装一个RPM,以在我安装任何软件包之前添加一个yum仓库(IUS社区)。
背景: 我终于留出了一些时间来join21世纪,看看木偶。 就目前来看,我们版本控制在办公室内部保存的存储库中的所有服务器configuration。 当需要更新时,更改将被重新检入到回购站中,并手动推送到相关机器。 这通常意味着SFTP到远程计算机,然后从shell中移动文件到相应的权限。 所以我希望木偶将成为我们已经拥有的一个简单而又惊人的扩展。 现在我考虑我们目前必须合理安全的过程。 假设我们的内部networking总是比我们的数据中心的公共networking更安全。 这个过程总是一种方式。 变化从一个安全的环境转到不安全的环境。 主店在最安全的地方。 通过窃取configuration或发送恶意修改的风险大大降低。 题: 从我所了解的Puppet服务器/客户端模型来看,客户端直接从服务器端查询并取消更新。 stream量是SSL封装的,所以不能被拦截或欺骗。 但是它与我们目前所做的不同,因为Puppet服务器需要在公共场所托pipe。 无论是集中式的,还是每个我们维护的数据中心站点。 所以我想知道: 我是否从推拉转变为不必要的偏执? 我在公共networking上集中存储所有这些信息是不必要的偏执狂? 其他人如何维护多个networking – 每个站点单独的服务器? 2009年7月30日更新: 我想我的其他重大问题之一是放置,所以必须相信一台机器。 傀儡(s)将被防火墙,担保等。 但即使如此,任何有听音服务的公共机器都有一定规模的攻击面。 据推测,如果主人有权更新任何一个傀儡客户的任何文件,那么妥协将最终导致所有客户的妥协。 可以这么说,“国王之王”。 这个假设是否正确? 有什么办法可以减轻吗?
我试图找出正确的方式来更新/升级deb包使用木偶从本地源deb文件。 我目前的configuration看起来像这样… class adobe-air-2-0-4 { file { "/opt/air-debs": ensure => directory } file { "/opt/air-debs/adobeair-2.0.4.deb": owner => root, group => root, mode => 644, ensure => present, source => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb" } package { "adobeair": provider => dpkg, ensure => installed, source => "/opt/air-debs/adobeair-2.0.4.deb" } } 我首先将deb文件复制到客户端机器,然后使用提供程序设置为'dpkg'的'package'。 这工作,我得到正确的版本安装。 我的问题是什么是未来更新这个包的正确方法。 我可以简单地更换源文件,puppet会知道这是一个不同的版本,并更新这个包? puppet如何确定它已安装的软件包的版本与源deb文件的版本? 我对傀儡很新,所以如果你有一个改进我的现有configuration的build议,他们非常感激。