Articles of 木偶

在Puppet中使用带有通知的case语句

class mymodule::scripts::os_check { case $operatingsystem { /(?i-mx:centos)/: { notify("You are using CentOS")} /(?i-mx:.*)/: { notify("You are using non-CentOS OS") } } } 为什么这个运行没有错误,但不显示通知(在一个服务器上的操作系统事实== CentOS)? 我正在使用puppet apply os-check.pp作为一个独立的脚本运行,只是看到目录运行通知。

为什么厨师,傀儡,无赖,盐等?

devops工具生态系统令我感到困惑。 服务器编排/pipe理空间中的每个人都在使用自己的专有格式,而不是使用shell脚本。 Ansible有他们的YAML游戏手册,Puppet有它的类/graphics语言,salt像ansible有某种YAML格式,厨师是一个embedded的Ruby DSL。 在所有这些方法中,我最喜欢厨师,因为它做的是最简单的事情。 所以我想一个好处是当你使用这些工具之一时,对机群的可视性更好,但是这与实际的configuration和configuration组件是正交的。 我不明白为什么每个人都试图用YAML来重新发明shell脚本,因为往往不是ssh -t就是我需要做的事情,以及一些shell脚本的库。 这些脚本通常打包为自包含的tar文件,并且足够小而且足够简单,可以根据需要进行混合和匹配。 除了bash ,它们具有零依赖关系,几乎可以在任何地方工作。 那么为什么这样一个简单的解决scheme不足以胜任真人,傀儡,厨师等呢? 通过用其他格式replacebash脚本,所有这些解决scheme能获得什么?

如何从现有机器创build盐堆清单

我们最近失去了系统pipe理员。 我已经承担了确保如果发生任何不良事件的任务,我们可以重新创build我们的虚拟机。 系统是FreeBSD的各种版本。 有什么办法可以使用像盐栈,木偶等东西来逆向工程从现有的安装服务器清单? 我担心我没有足够的知识来确定我知道每个服务器上运行的服务是从头开始创build一个服务,并且想知道是否有一个工具可以扫描系统并根据它在已安装的软件包及其configuration文件。 一厢情愿的想法我敢肯定,但如果有人知道这可能会做,我会很感激。

使用MCollective运行Puppet

我必须在云中pipe理一大群服务器,现在我想自动化这些机器的安装过程。 所以我用木偶作为configurationpipe理系统。 我想从主节点到集群节点的configuration非常快,听到MCollective可以做到这一点。 但是我不知道MCollective,RabbitMQ和Puppet之间的交互和设置如何。 在互联网上有没有一个很好的教程,或者有人可以给我一个简短的介绍吗? 这将是伟大的! 谢谢,Markus

木偶pipe理puppet_client.conf

我有一个依赖循环在我的Puppet安装,我需要协助解决。 我有一个更新/etc/puppet/puppet_client.conf文件的Puppet服务器。 这是通过一个erb模板部署的。 该模板包括设置'pluginsync = true'选项。 我也在不同的模板中使用自定义事实。 这两个(以及更多)都是作为我的核心Linux模板的一部分。 在新添加的服务器上,我收到一个不存在的事实失败,并在更改puppetconfiguration之前停止执行。 如果我手动添加pluginsync选项,一切都是犹太教。 我如何在Puppet中解决这个问题? 有没有办法强制这个,依赖关系等?

什么木偶资源types需要一个审计元参数来强制傀儡pipe理资源,如果它被删除?

直到最近,我还是觉得仅仅声明一个具有各种属性的资源就可以确保Puppetpipe理资源,并且如果它改变了就会回到configuration状态。 今天,我发现不是我configuration的yumrepo资源的情况,直到我添加了audit => all metaparameter资源。 我删除了/etc/yum.repos.d/foo.repo并运行puppetd –test 。 木偶没有重新创build资源。 这是否表明木偶瑕疵? 如果这就是预期的行为,那么它会引发一个问题,那么其他什么资源需要audit => all告诉Puppetpipe理资源的状态,如果它在pipe理下的系统上发生变化呢? 这里是库类: class yum::therepo { # Temporarily remove the Yum repo configuration if we don't have # httpd yet. exec { 'disable-the-repo-to-get-its-dependencies': provider => shell, command => 'rm -f /etc/yum.repos.d/the.repo', unless => 'rpm -q httpd', onlyif => 'test -f /etc/yum.repos.d/the.repo', before => [Package['httpd'], […]

Foreman和Configuration Manager / SCCM进行部署

作为客户端pipe理员,我最近在多年的工作岗位上成功地使用了Windows系统pipe理员。 在过去的5年里,我一直是Configuration Manager / SCCM的领导者(直到最新的当前分支版本),并且非常熟悉它。 我们所有的客户和服务器都使用SCCM进行pipe理。 我们的Linux系统pipe理员已经实施和使用Foreman进行系统部署,并且预计Foreman / Puppet将被用于维护我们数据中心中所有系统的清单。 我看到一个使用VMWare模板与Foreman部署的Windows机器的演示(令人印象深刻)。 不过,我觉得维护VMWare模板比我想看的要多得多。 我已经被告知,在部署VM之后,现有的pipe理员正在执行更新和安装所需软件等操作。 一个Server 2016的图像还没有build成。 这是SCCM进来的地方。 我设想了一个将虚拟机引导到SCCM / WDS PXE的Foreman工作stream程,然后允许零或轻触式部署。 这是Foreman的典型工作stream程吗? 这样我们就可以维护SCCM上的图像构build和部署,但仍然使用Foreman来处理其他任何事情。 我很担心因为我的工具带上有一把锤子(SCCM),所有东西看起来都像钉子一样。 我希望做到开明,在产品忠诚之前把机构和同事的最大利益放在首位。 任何想法将不胜感激。

无法在AIX节点上以“源”types获取定义的path

我试图在我的AIX节点上创build一组用户,并尝试使用名称“myuser_id_dsa.pub”来获取已在我的服务器上托pipe的authorized_keys。 目前我正在pipe理2个节点(1. SLES 2. AIX)。 我在fileserver.conf中的两个独立的上下文中定义了“源”文件path; [AIX]pathmyfiles / users / ssh / allow * .another.mydomain.com [SLES]pathmyfiles / users / keys / ssh / allow * .mydomain.com 但是当我运行puppet时,它在SLES节点上成功结束,但是在AIX上遇到了故障; 跟随err; / *无法描述/AIX/myuser_id_rsa.pub:文件服务器模块'AIX'未安装* / 在我的代码中,我用$ filservervariables定义了'source': case $ operatingsystem {“AIX”:{$ fileserver =“AIX”} default:{$ fileserver =“SLES”}} file {“$ {home} / $ {username} / .ssh / authorized_keys”:source =>“puppet:/// $ fileserver […]

傀儡问题同步自定义事实的问题

我无法让傀儡同步一个自定义的事实。 我正在使用木偶版本0.25.4。 事实是在http://docs.reductivelabs.com/guides/plugins_in_modules.html中描述的模块内 如果我在命令行中指定了–pluginsync,它将正确同步,但是,即使我的puppet.conf中有pluginsync = true,也不会。 这个命令行选项和puppet.conf中的选项应该具有相同的行为是否正确?

傀儡仪表板升级失败

以下页面:无法获得最新的木偶仪表板安装…. http://docs.puppetlabs.com/dashboard/manual/1.2/upgrading.html#upgrading-code 键入命令: git init rm .gitignore wget https://raw.github.com/puppetlabs/puppet-dashboard/{version tag}/.gitignore git add . git commit -m "conversion commit" git branch original git remote add upstream git://github.com/puppetlabs/puppet-dashboard.git git fetch upstream git reset –hard tags/{version tag} git merge –no-ff original git reset –soft tags/{version tag} git stash save "Non-ignored files which were changed after the original installation." […]