Articles of puppet

使用Puppetlabs / Apache在Apache上启用FastCGI

我正在使用Puppetlabs / Apache来configurationApache。 在主傀儡文件中,我调用并configuration它: class { '::apache': } class { '::apache::mod::fastcgi': } apache::vhost { "${::fqdn} non-ssl": servername => $::fqdn, port => '2222', docroot => "/var/www/${root}", priority => 10, } apache::mod::fastcgi清单可以无缝工作…有一个缺点:PHP以某种方式仍然在(cli)模式下运行: vagrant@wp:/etc/apache2/mods-enabled$ php -v PHP 5.5.12-1+deb.sury.org~precise+1 (cli) (built: May 8 2014 21:04:38) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies […]

Puppet 2.7.x – 全局variables – 追加

没有深入到杂草,Nginx迫使我的手,以通过虚幻和map指令完成一些魔术。 是否有一个优雅的(相对)解决scheme来跨多个定义调用共享一个variables,它允许每个定义调用将其数据附加到全局variables? 在软件中,这将被称为单身。 – 杂草 – Nginx有一个map指令,它决定了哪个上游服务器池应该被传递,如下所示: map $http_host $upstream_pool { hostnames; blog.example.com blog_example_com; repo.example.com repo_example_com; default example_com; } 如您所见,对blog.example.com的任何请求都将传递到blog_example_com上游服务器池(通过proxy_pass )。 问题是map指令的语法是它只能包含在主要的http块(nginx.conf)中,而vhost特定的指令(如upstream和location可以包含在vhostconfiguration的server块中。 我的nodes.pp清单看起来像这样: service-a-1.example.com inherits project_dev { nginx::vhost { 'mothership': } nginx::vhost { 'mothership_blog': } nginx::vhost { 'repo': } } 正如你所看到的,在一个成功的木偶运行之后,我应该在/etc/nginx/vhost.d/目录中得到3个不同的vhostconfiguration文件。 我遇到的问题是,为了使map指令工作,我需要知道哪些虚拟主机已经加载,所以我可以将他们各自的上游id添加到我在主configuration中定义的map指令中: /etc/nginx/nginx.conf http块中的/etc/nginx/nginx.conf (其中只能有一个)。 – 我曾尝试过 – – 我有一个global.pp文件,它做了一些“引导”,并在这个文件中添加了一个$singleton = ''语法,然后在nginx :: vhost定义中,我添加了这个语法: $tpl_upstream_pool_labels […]

如何在版本控制登记之前强制执行木偶清单和模块语法检查?

我正在为我们的puppet模块和清单部署版本控制。 我想强制执行一个工作stream程,需要在检入更改之前进行puppet模块和清单代码检查。 这将是有用的,因为它将防止推动代码改变,例如语法错误或更致命的东西。 我最初的想法是部署一个完整的puppetmaster实例,其中可以完成清单和模块更改,并将其作为自身的一个节点。 然后可以用service puppetmaster restart && service puppet restart检查语法,并检查日志是否有错误。 我可以在清单和模块推送脚本中编写该工作stream程。 不过,我想这是一种更优雅的方式。

用于Linux的configurationpipe理软件“收获”configuration文件

手动pipe理50台服务器,并一直在寻找不同的cms for linux(cfengine,puppet,chef等)。它主要用于configuration文件的CM。 有从现有的服务器收集信息的CMS吗? 所以我不必为每个服务器编写class'es,recipies等,而是自动从我的服务器获取configuration文件,以便稍后可以对它们进行集中编辑?

检查傀儡代理是否是最新的

我想检查我的nagios监视每个节点是否使用puppetmaster提供的当前目录版本。 在我的情况下,有: 木偶大师 主机1 主机2 主机X 我想在host1,host2,hostX上创buildnrpe插件: 检查主机上的当前目录版本 检查为puppetmaster上的节点准备的当前目录版本 警告,如果两者不同 问题: 要检查puppetmaster上的目录版本,我可以运行/ production / catalog API查询,但是它非常昂贵(cpu) – 因为每当我请求时都需要编译目录。 我看不到任何选项来检查节点上的当前目录版本。 我尝试了木偶目录,但这不是很有帮助。 所以我的问题是,如何监视木偶代理人的健康,并得到通知,如果任何主机使用旧的木偶目录? 这有什么意义吗?

Puppet VS Ansible +什么是最好的自动远程任务工具

有许多自动化任务的远程工具,如puppet或ansible 我的目标是在Linux机器上执行许多远程任务,如下所示: 运行Linux命令块, 将主机中的文件复制到远程Linux机器上 在远程Linux机器上运行脚本 等等

如何处理Linux发行版本之间的Puppet版本差异

我们是一个小型的webdev商店,正在调查在各种开发和生产服务器上推出Puppet。 puppetmaster是一个Ubuntu 10.04服务器,来自Ubuntu的repo,Puppet 0.25.4。 一些puppet客户端是使用puppet 0.25.4的Ubuntu,而另外一些则是基于RedHat或Centos的,他们正在使用提供puppet 0.25.5包的EPEL存储库。 这些较新的客户不能与“老”木偶大师交谈,所以我可以升级主人或降级客户。 不过,我无法findrpm将客户端降级到0.25.4。 build立我自己的软件包是一件麻烦的事情,因为我是公司内唯一的系统pipe理员,所以我无法做到这一点。 如何处理异构环境中的不同客户端/服务器版本?

允许开发人员编辑3个Puppet模块的最安全的方法是什么?

我们有一个开发者必须为一个环境制作3个Puppet模块。 我希望他能写出他的3个模块。 我们现在编写自己的模块,他是另外一个部门的第一个编写模块的人。 我们使用root访问来编写/编辑我们的模块,但是我们不想给他root访问权限。 授权他制作/编辑他的3个模块的最佳方法是什么? 我们使用Puppet 3.2.4和Red Hat Linux 6.4。

如何获得在Foreman上运行的Run Puppetbutton?

首先,我知道在serverfault上已经有一个非常类似的问题,但是这并不能完全解决我的问题。 所以,我的设置如下:我有一台服务器,运行Ubuntu 14.04 LTS和木偶大师3.4.3与工头1.6。 客户端是运行木偶代理3.7.0的Windows 7计算机。 自动运行工作正常,我只是麻烦得到Run Puppetbutton的工作。 我总是得到这个红色覆盖这个消息: failed to execute puppetrun: ERF12-4252 [ProxyAPI::ProxyException]: Unable to execute Puppet run ([RestClient::InternalServerError]: 500 Internal Server Error) for proxy https://puppetmaster:8443/puppet 我遵循wiki的指示,并在节点上添加了以前不存在的文件auth.conf。 我把它放到了puppet.conf文件所在的C:\ProgramData\PuppetLabs\puppet\etc\目录下。 我也添加了一个空的namespaceauth.conf到这个目录。 在节点和服务器上,我激活了listen = true。 我把sudo-proxy添加到了sudoers文件中。 我重新启动了节点服务和puppetmaster几次。 这是我发现的所有其他post说“现在你有一个工作运行木偶button”。 除了我以外,它不工作。 我能find的唯一日志条目是在/var/log/foreman-proxy/proxy.log中: E, [2014-10-20T17:50:53.051681 #1119] ERROR — : Failed puppet run: Check Log files 我检查了所有可以find的日志文件,但找不到有关此错误的更多信息。 编辑:添加链接到维基第二编辑:我也检查了工头错误代码 ,但不幸的是,我得到的代码没有任何信息链接到它。 (是的,我检查代理通信错误 […]

使用gitpipe理puppet模块

我有一个在Debian 7上运行的puppet / foreman服务器来pipe理我的系统。 我使用社区版本3.7的木偶和领class1.6.0。 我使用目录环境。 目前我使用一个相当复杂的工作stream程来创build我的自我编写的模块,在我的开发环境中进行颠覆控制,然后将它们导出到外部目录,构build一个puppet模块(puppet module build …)和在生产中安装。 我认为将它们分支/标记为颠覆性的生产,但是由于我记不起来的原因,我认为这是出乎意料的。 同时我学到了一些git,宁愿用git代替颠覆。 我的问题是现在是否有最好的做法呢? 我可以想象至less有两种方法都有其优缺点。 一个是将版本控制下的环境开发,然后克隆/分支到生产。 其次是将每个模块的git repo克隆到环境中。 正如我所说,我是新手,所以我没有真正的线索,它的优点和缺点。 另外,我只用了约8个月的木偶和工头。 干杯,克里斯托弗