木偶必须恨我 我一直在阅读文档几个小时,仍然无法实现以下目标: 一个类或模块(或称为什么)与一个variables(参数化类?); 这个类将被包含多次在一个单一的主机。 在伪代码中,这将是: # The class classorwhatever myclass ($value) { notify { "$value world" } } # In the node definition node whatever { myclass("Hello") myclass("Goodbye") } 我觉得这很愚蠢,甚至不好笑。 我知道这一定是可行的。 但是,如何? 🙁
我设置了一个木偶大师/代理,并已成功为主代理签署了代理证书。 然而,当我运行puppet agent –test我得到一个失败,看起来像这样: Warning: Unable to fetch my node definition, but the agent run will continue: Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com] Info: Retrieving plugin Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate […]
这涉及多租户环境,如小型托pipe公司。 木偶(或类似的)是一个合适的技术来照顾基本的,但临界的质量变化? 例如: 更新DNSparsing器(resolv.conf) 设置SSH密钥 更新NTPconfiguration configurationsnmpd 部署监视脚本,例如SNMP Perl扩展或Nagios脚本 我关心的是安全性和侵入性: 我不希望任何服务器能够看到它不应该的任何configuration 我担心木偶大师可能容易受到服务器的攻击 我不希望Puppet做任何不该做的更改,或者恢复在服务器上完成的任何手动更改。 我应该告诫说,我从来没有使用木偶制作,只是在testing实验室中快速发挥,所以有可能我想这是一个错误的方式!
你如何configuration傀儡只停在第一次失败,而不是继续,只是喷出错误的其余步骤取决于第一次失败?
是否有可能告诉puppet为一个(或所有)节点编译一个目录并将某个特定的数据保存在某个地方? 我特别感兴趣的是获得所有需要的软件包及其每个节点的版本,但获取任何数据的一般方法也是合适的。
我想知道如何设置:datadir: hiera.yaml与Puppet和Vagrant的最佳使用。 目前,我在Ubuntu 13.10上使用了vagrant 1.5.0和virtualbox 4.2,并且运行了puppet 3.1.1的Ubuntu 12.04 guest 我试图build立一个类似于这个博客的环境, 木偶最佳实践:环境特定的configuration 。 具体来说,我的Vagrantfile包含: config.vm.define "servername" do |servername| servername.vm.box = "precise-puppet-3" servername.vm.network "private_network", ip: "192.168.213.2", virtualbox__intnet: "networkname" # Provision with puppet. servername.vm.provision :puppet do |puppet| puppet.hiera_config_path = "puppet/hiera.yaml" puppet.manifests_path = "puppet/manifests" puppet.module_path = "puppet/modules" puppet.manifest_file = "servername.pp" puppet.facter = { "vagrant" => "1", "server" => "servername", […]
我正在尝试安装一个安装了puppet的Ubuntu虚拟机,这样我可以在本地testing我们的生产环境。 我很难让傀儡大师和傀儡交谈。 让我带你走过我的脚步。 (服务器的hostname是“web1.xxx.xxx.net”格式的FQDN)。 所以首先,我从/etc/puppet/ssl目录中清除所有的pem文件(当然除了CA pem),这样我就可以重新开始了。 puppetca –list返回没有结果。 然后,我运行puppetd –test为傀儡大师生成一个CSR。 puppetca –list现在包含我的主机名(“web1.xxx.xxx.net”)。 然后我运行puppetca –sign web1.xxx.xxx.net 。 现在puppetca –list是空的 – 一切正常工作到目前为止。 最后,我运行puppetd –test再次testing。 我得到以下输出: err: Could not retrieve catalog from remote server: hostname was not match with the server certificate warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run 列出/etc/puppet/ssl目录的内容显示了与我的hostname匹配的正确服务器名称的PEM文件。 任何人有任何想法如何攻击这个问题?
我是Puppet的初学者,我想知道我是否正确地使用Puppet部署应用程序。 应用程序位于tar.gz文件中,其中包含具有版本号的文件。 所以,我这样做来部署(我去服务器上,并重新启动客户端拿起新的压缩包): nodes.pp node 'server1.domain.com' inherits basenode { apps { apps: version => 56, apps_name => "apps_tarball.tgz", } init.pp (modules) exec {"apps_wget": command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}", unless => "test -f /tmp/${version}-${apps_name}", require => [ Package["wget"] ], } exec {"apps_unzip": cwd => "/usr/local/apps/path", command => "/usr/bin/unzip /tmp/${version}-${apps_name}", unless => "test -f /usr/local/apps/path/apps-version-${version}", require […]
我们主要(但不是唯一)赢得服务器。 最好是,我们可以启动操作系统,做些什么或什么都不做,以使其准备好接收命令(我们知道我们可能需要创build一个带有代理或ssh服务器的基本映像)。 需要能够安装mongodb,基于Java的应用程序,iisconfiguration等 哪个工具最强大的Windows支持/社区,(如果位置)最轻的初始化脚印? 操作答案:Powershell DSC。 这不是完整的故事(它不是所有的厨师/傀儡/等),但它满足了很多的需求,伟大的工程,并在胜利8.1 / 2012-R2 / 10开箱即用。 我们对此非常满意。
木偶是否有办法安装yum软件包组(例如“开发工具”),除了exec?