Articles of 木偶

如何在Puppet中包含模块

这是一个小例子模块: class apache { … } 这两种方法之间有什么区别,如果我想包括我的示例模块? node web1 { include apache } node web1 { class { 'apache:' } } 包括课程的最佳实践是什么?

Centos – 无法从puppet仪表板访问节点

我试图设置puppet的仪表板来监视我的服务器的状态。 通过下面显示的configuration,我的客户端(或节点)只显示为Unreported,并表示在仪表板概览中没有报告 – 但是该节点可以与服务器通信,并按需要进行更改,但是不显示任何内容。 我已经按照这些文件试图设置它,但我不知道我做错了什么。 什么可能是一个可能的问题? // Server /etc/puppet/puppet.conf [master] reports = store,http reporturl = http://192.168.1.101:3000/reports/upload // Client /etc/puppet/puppet.conf [agent] report = true

清单文件没有被应用

我在一个虚拟主机上安装了木偶,以便进行试驾。 我正在使用epel 2.6.18的最新版本。 为简单起见,此testing安装将使服务器和客户端在同一个系统上运行。 安装木偶后,我跑了puppet master –mkusers用户启动服务器。 都好。 –configtest显示我的模块目录是默认的/etc/puppet/modules文件夹。 我创build了文件夹结构/ etc / puppet / modules / ntp / manifests /,然后创build一个ntp.pp文件,如下所示: class ntp { package {'ntp': ensure => present } service {'ntp': ensure => running, } } include ntp 发布puppet –parseonly /etc/puppet/modules/ntp/manifests/ntp.pp返回干净。 没有错误。 接下来,我发问 puppet agent –test –server=`hostname 回去吧 info: Caching catalog for localhost.localdomain info: Applying […]

带有$ servername的case语句失败

我在一个独立的系统上探索木偶,并且为了MySQL而复制一个configuration文件进入墙壁。 使用下面的清单,MySQL被安装,但my.cnf文件不被复制。 init.pp(主机名:dev_one.site.com) class mysql { case $servername { "prod_one.site.com", "dev_one.site.com", "sandbox_one.site.com": { $conf_file = 'my.cnf.one' } "prod_two.site.com", "dev_two.site.com", "sandbox_two.site.com": { $conf_file = 'my.cnf.two' } } package { "mysql-server": ensure => present, } package { "mysql": ensure => present, } file { 'my.cnf': path => '/etc/', ensure => file, require => Package['mysql'], source => "puppet:///modules/mysql/${conf_file}" […]

我如何让Puppet运行一次?

有时我想在所有服务器上运行一次命令,例如 service ntpd stop ntpdate ntp3.domain.local service ntpd start 我如何让Puppet在所有服务器上运行一次这个命令? 我想避免这个命令每30分钟运行一次。 如果Puppet不是这个的正确工具,那么是什么?

使用Vagrant重新创buildCentOS环境

我有一个stream浪和CentOS相关的问题。 我试图复制一个使用WHM / cPanel托pipe的CentOS服务器。 服务器上的每个站点都托pipe在/home/$user/ 。 这意味着与stream浪汉我需要有一个同步文件夹是这样的: config.vm.synced_folder "~/my-local-folder", "/home" 用stream浪者复制这个环境成为一个问题,因为stream浪用户(用于访问stream浪者箱子)存储在/home目录中。 这意味着同步文件夹的过程将移除stream浪者用户(除非我的本地文件夹中已经存在vagrant目录)。 我已经find了一种重buildstream浪用户的方法(包括它的ssh密钥),作为configurationpuppet服务器的一部分。 我基本上添加到stream浪汉文件夹中,并创build.ssh键,但这种感觉不对。 还有另一种方法我应该接近这个? 在任何其他位置托pipe的stream浪箱上的文件不是一个选项,因为其目的是尽可能复制框。 在我看来,在主目录之外创build一个stream浪用户将完全解决这个问题,但是我一直无法确定这是否可能。

工头环境导入

我有一个安装在Ubuntu 14.04服务器上的工头。 现在有如下问题: 我已经安装了许多puppetlab模块(puppetlabs / apt,puppetlabs / ntp等)。 点击“从…导入”后,我可以导入这些木偶类。 现在我写了自己的傀儡模块。 我可以安装它 puppet module install andlinger-java 现在我再次单击“从…导入”,但是它显示“没有检测到您的环境的变化”。 我的模块有什么问题? 所有模块安装在相同的path。 的/ etc /木偶/环境/生产/模块/

木偶:集中式和分散式清单分布之间的差异

似乎有两种不同的方式来分发木偶清单: 集中 : 这包括运行一个中央木偶主服务器,由木偶代理定期查询更改。 分散 : 在这种情况下,不存在中央木偶主服务器,并且通过其他方式将清单分发给节点,例如通过Git。 然后一个节点运行puppet apply应用更改。 我想知道两种方法之间的主要区别是什么,如果任何木偶function取决于特定的方法。

傀儡模板erb如果variables未定义保持默认

我试图学习木偶,我不明白如何设置模板erbselect默认值,如果variables没有在common.yaml或node.yaml中定义。 这是我曾经试过的:1) # we don't need to run the embedded HTTP server here <% if @elasticsearch_http_enabled %> elasticsearch_http_enabled = <%= @elasticsearch_http_enabled %> <% else %> #elasticsearch_http_enabled = false <% end %> 2) # we don't need to run the embedded HTTP server here <%- if @elasticsearch_http_enabled then -%> elasticsearch_http_enabled = <%= @elasticsearch_http_enabled %> <% else […]

确保具有某些事实的所有傀儡节点的列表是最新的

我正在使用puppet来pipe理大约十几个节点。 其中一台服务器有一个监视工具,需要列出所有节点和一些基本规格。 我想利用puppet来确保列表中包含每个当前节点,并且基本规范是最新的(通过节点的最新facts )。 我的第一个想法是parsing/var/lib/puppet/yaml/facts并根据这个创build我需要的文件。 不是最优雅的想法,但它可能工作。 任何人如何解决这个问题有更多优雅的build议?