在我的yaml文件中,我有多个值需要打印到另一个php模块pipe理的ini文件中。 我可以通过heira获取值并将它们输出到ini文件,但格式不正确。 yaml文件中的每个项目都必须用一行分隔,我该如何实现? 这是我的yaml文件: — nginx: phpini: – display_errors = On – error_reporting = -1 – date.timezone = "Europe/London" – sendmail_path = "/usr/bin/env /usr/local/bin/catchmail" – xdebug.default_enable = 1 – xdebug.remote_autostart = 0 – xdebug.remote_connect_back = 1 – xdebug.remote_enable = 1 – xdebug.remote_handler = "dbgp" – xdebug.remote_port = 9000 这就是我为什么尝试了一些不同的东西而没有成功的原因: php::ini { 'php.ini': value => [ […]
我想使用Augeas来修改“/ etc / inittab”,但只有在安装了“sysvinit”软件包时才会发生这种情况。 该包不受Puppet控制(不得)。 Augeas的“onlyif”似乎不能检查Augeas的其他东西,id Augeas无法检查文件是否存在。 有没有办法实现这一点,而不创build一个自定义的事实?
我们正在通过puppet做一些服务器的基本pipe理 – 服务器本身作为集群系统的一部分运行,处理诸如用户帐户等其他方面,还包括一个监视脚本,用于检测关键文件(/ etc / passwd等)中的更改。 如果木偶更新软件包,则可能会更改这些触发监控系统的密钥文件。 (这不是无意的) 监控系统有一个可以手动运行来清除状态的命令,每当puppet进行任何更改时,我们都必须这样做,当我们开始收到邮件时! 我们可以定义一个在run_stage后运行的exec来运行命令,但是这个默认情况下会在每次运行puppet时触发,然后我们的报告总是显示为puppet进行了修改,不pipe是否进行了修改。 有没有一种方法可以设置执行程序,使其仅在傀儡应用其他更改时才运行?
我想知道是否有一台机器连接到多个不同的Puppetmaster实例是否有意义。 我的用例是我有不同的特权级别,我想授予服务器运营商。 我们已经运行了一个相当(~100)广泛的连接到一个Puppetmaster的Puppet客户端,在这个客户端上我们使用导出的资源来configurationNagios,Munin,Backups等等。 相当标准的东西。 但是现在我们有另一个项目,我们为客户build立了一个完全独立的 Puppetmaster,因为我们不想让他们访问我们的内部基础架构。 然而,我们希望将其服务器上的导出资源导入到我们的监控基础架构中,以便我们可以监控他们的机器。 我想另外一个方法来解决这个问题:是否有可能在一台机器上运行(多个?)Puppet客户端,连接到多个不同的Puppetmasters? 或者是否有办法在限制访问的同时在Puppetmaster之间共享导出的资源或数据? (我知道Puppet可以通过在一个负载均衡设置中部署多个Puppetmaster服务器进行水平缩放,这个问题不是这个问题)。
我目前在无主模式下运行Puppet。 我正在使用r10k进行模块和环境部署。 简化版本:r10k控制库有两个分支: testing和生产 。 生产中的变化将被自动分配到生产服务器。 对某些分段服务器的testing更改。 现在,如果我在testing中改变事情,我有时也必须更改r10k控制库。 一个常见的例子是Puppetfile ,目前在生产中看起来像这样: forge 'forge.puppetlabs.com' # Forge modules mod 'puppetlabs/stdlib' mod 'puppetlabs/concat' mod 'saz/ssh' # Custom modules mod 'ownmodule1', :git => 'https://git.example.org/configuration/ownmodule1.git', :ref => 'production' mod 'ownmodule2', :git => 'https://git.example.org/configuration/ownmodule2.git', :ref => 'production' 自定义模块的configuration在testing分支上可能如下所示: mod 'ownmodule1', :git => 'https://git.example.org/configuration/ownmodule1.git', :ref => 'testing' mod 'ownmodule2', :git => 'https://git.example.org/configuration/ownmodule2.git', :ref […]
我们在Elastic Load Balancer后面的AWS EC2实例上运行了几个Puppet Master版本3.7(非PE)(主要用于高可用性)。 目前负载平衡器的检查只是在端口8140上进行TCP连接。但是这并没有检测到其中一个实例被挂起(它仍然接受初始的TCP连接,但是没有做任何事情)。 我正在寻找方法,实际上向木偶大师发送一个有意义的“禁止”请求,并将结果发送回去。 更具体的要求: 它不应该触发大量的处理(检查每隔几秒钟发生一次) 如果木偶大师能够真正处理“真正的要求”,否则就会成功。 应该可以从ELB执行(即基本上它应该在静态path上的成功https请求上返回“200 OK” 。 有没有一个很好的静态path,我可以给健康检查使用? 到目前为止,我还没有find任何。
我需要一个解决scheme来为一个用户添加多个SSH密钥。 class user { user { 'k': ensure => present, comment => 'bogo user', home => '/home/k', managehome => true } ssh_authorized_key { 'k_ssh': user => 'k', type => 'rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDk656+4Ivl5MnFBSmQw+hnsd7DsueGbZ5HbVlzE8BvYxbwlWAO5DiVw2p1qae/WLJNJDDl7unZemLApR+YkKIL6HXbCUj8V8+KHqSyE9pshMiRj/Lh2lNhZQPFbE8cc6TNY3YVSeyKY0mw8Uj4MBGWnv62DWoO5QuM17CJrD6gH1VlkCqVt8c7jSd9ijmCume5QExwlUtMjl60ZyfbTRbz16aQJNKbqdeIGKA6rB97xet1cHNZ08cCd37GqtMyMiqYwgxxaG87y9DekotLQ9Zw12gyMVgaeGuihZfIV+F6HS1vKNjiL+av+zKxWPidSjlQf2qhthnaMnfPWGjjQfJ7', } }
我有一个文件,我想用于几个不同的目的。 该文件是90%相同的使用,只是轻微的差异。 我宁愿不将内容复制到傀儡中的多个文件中,所以有办法做类似的事情 file { "/tmp/file1" : content => template("module/template.erb") } file { "/tmp/file2" : content => template("module/template.erb") } 并在模板中: Jack John James <% if file == "/tmp/file2" %> Jim <% end %>
我已经find了一些可以检查variables是否具有特定值的例子 if $var == 'somevalue' { … } 如果有东西被定义 if defined(Package['somepackage']) { … } 但是我怎样才能检查用户是否存在,如果不存在则失败。 知道如何使用脚本或shelltesting的结果就足够了,因为/usr/bin/id -u ${name} >/dev/null 2>&1是我所需要的,甚至检查用户目录存在就行了。 file和exec不接受onlyif参数,否则这根本就不成问题
我正在运行一个以下列方式应用木偶变化的无主傀儡设置。 puppet apply /tmp/puppet/manifests/site.pp –modulepath=/tmp/puppet/modules –hiera_config=/tmp/puppet/hiera.yaml 我一直试图在hiera中处理我们拥有的不同types的节点,并且作为一个起点已经尝试使用在节点上设置的自定义事实。 这个事实是nodetype,在这个例子中被设置为无盘的值。 节点上的Facter认识到这一点。 # facter -y | grep nodetype nodetype: diskless hiera.yaml包含以下内容 — :backends: – yaml :yaml: :datadir: /tmp/puppet/data :hierarchy: – node/%{::nodetype} 在/tmp/puppet/data/node/diskless.yaml有 — cluster: blues 虽然这样做后,我试图仔细检查,然后hiera然后根据需要设置variables,但似乎并没有工作。 hiera -y diskless.yaml cluster nil 有没有更好的方法来debugging问题。 我相信这是简单的,但是如果hiera没有(或不能)在这个用例中运行,那将是令人失望的。 干杯 编辑1: 额外的debugging hiera cluster '::nodetype=diskless' -d DEBUG: Fri Oct 31 16:54:01 -0400 2014: Hiera […]