我没有直接访问我们的傀儡老师,但我可以修改与我的工作有关的模块和类。 我想build立一个不在 puppetmaster上的puppet://文件服务器,这样它就可以通过其他方式进行更新。 有什么办法可以configuration一个Apache虚拟主机或path正确地响应puppet://文件服务的请求?
假设你有这样的文件指令: ***SNIP*** file: "/tmp/file_I_need": path => "/tmp/file_I_need", ensure => "present", source:[ "puppet://$fileserver/files/$name/file_I_need", "puppet://$fileserver/files/$group/file_I_need", "puppet://$fileserver/files/default/file_I_need", ]; ***SNIP*** 然后每个文件都是这样的: files/name_that_exists>/file_I_need files/group_that_exists>/file_I_need files/default/file_I_need 问题是这样的: 如何知道哪个源文件木偶正在使用? 如果我在不同的主机上运行木偶,我期望不同的文件,我知道它会使用匹配的文件。 没有修改文件,看看是否有变化,有没有办法看到它所select的3个源文件中的哪一个? 这是木偶2.6.2。(在Debian上运行的服务器) 注意: 我正在寻找一种不同于使用文件散列的方法。 我也不喜欢在每个文件中放置文件名(或类似文件)的解决scheme。 我想知道如何从傀儡的path。
我工作的公司目前正在研究为我们的服务器(所有Ubuntu / FreeBSD)部署集中式自动化系统(如Salt或Puppet)。 我们可能会跟盐一起去,但我认为这与我的问题无关。 我的问题:有没有一种好的方法来监控机器上是否包含自动化系统中未包含的本地更改? 例如:为了快速修复,某人在给定机器上启动了服务或修改了configuration文件。 有没有办法使用Salt / Puppet /什么来检查这些东西? 或者我需要使用像AIDE这样的外部程序吗?
我想使用没有木偶的木偶,并使用git推送工作stream程来应用清单。 我想避免把所有东西都分成模块,因为服务器configuration不是很复杂。 但是, template()函数在访问不在模块中的模板时似乎遇到问题。 如果清单位于<puppet-root>/manifests/site.pp ,那么我<puppet-root>/manifests/site.pp如何引用<puppet-root>/templates/sshd_config.erb ?
怎么会得到一个–nogpgcheck选项通过木偶yum? 我试过了 package { 'unsigned-package': ensure => latest, install_options => ['–nogpgcheck'], } 和 package { 'unsigned-package': ensure => latest, install_options => ['nogpgcheck'], } 但是看一个代理运行的输出,yum没有得到这个选项。 另外(也可能是因为它不适合我),如何validation我的木偶是否具有install_optionsfunction? 我正在运行puppet 3.3.0-rc2。
我正在试图获得configuration思科交换机的“puppet设备”function。 我遇到的是我有一个签署证书的主人思科2960。 该设备在site.pp和devices.conf中。 我用正确的puppet作为–server来调用puppet设备。 我可以在路由器历史logging中看到,它实际上正在连接并运行前两个命令,但puppet回来并指出“错误:无法检索本地factsL:连接由远程主机closures”。 我在交换机configuration中找不到任何可能会导致这种情况的东西,除了SSH和启用密码之外,它基本上都是未configuration的。 我已经确认所有相关的主机名parsing正确,密码是好的。 我也进入了puppet / utils / network_devices / transport / ssh.rb,并强制使用相纸打印ssh输出(因为它似乎并不尊重 – 无论代码在哪里),并且它踢出从前4行的木偶运行(terminal长度为0,enable,sh vlan brief,sh ver),我也可以编辑facts.rb来踢出“事实”variables,它确实有数据。 相关文件如下: puppet –version:3.1.1 net-ssh版本:2.6.7 命令行: puppet device –debug –verbose –server puppet.internal.domain 相关产出: Debug: Finishing transaction 70266566593300 Debug: command Debug: connecting to switchname.internal.domain as puppet Error: Could not retrieve local facts: connection closed by remote […]
木偶版本2.7.18存储configuration(不是puppetdb) 我的情况我有3个couchbase节点,应该被连接到一个couchbase连接string,看起来像这样: 192.168.19.12;192.168.19.40;192.168.19.66 所以在每个couchbase服务器上,我都这样做: @@concat::fragment { "foo": target => '/tmp/foo', content => "$ipaddress", order => 1, } 在应该连接到couchbase服务器的应用程序服务器上,我想生成一个yamlconfiguration文件,如下所示: couchbase: class: MyCouchbaseStorage param: connection: MyCouchbaseConnection connection_param: username: myusername password: mypassword bucket: mybucket host: 192.168.19.12;192.168.19.40;192.168.19.66 persist: 1 除了主机线路都没有问题,但主机条目真的很棘手 我通过收集他们与concat主机: Concat::Fragment <<| tag == 'mycbtag' |>> { target => '/tmp/database.yml' } 所以现在我有这个问题,我没有“;” 像这样调用concat @@concat::fragment { "foo": target => […]
我在Centos 7服务器上设置了puppet 4.3。 这是一个木偶大师,也是木偶经纪人。 我正在尝试安装Puppet设备来configuration路由器。 当我试图运行puppet device我看到这个错误: sudo puppet device –verbose Info: starting applying configuration to r1 at telnet://r1/ Info: Creating a new SSL key for r1 Error: Could not request certificate: Could not write /opt/puppetlabs/puppet/cache/devices/r1/ssl/private_keys/r1.pem to privatekeydir: Permission denied @ rb_sysopen – /opt/puppetlabs/puppet/cache/devices/r1/ssl/private_keys/r1.pem 当我运行木偶设备无sudo我看到这个错误: puppet device –verbose Error: No device found in /home/<MEEEE>/.puppetlabs/etc/puppet/device.conf 这是我的/etc/puppetlabs/puppet/device.conf […]
我使用Puppet来pipe理一些在服务器之间共享的文件,通过GlusterFS文件系统。 (具体应该没有关系,但是在这种情况下,像/etc/httpd/conf.d和/ var / www / html这样的东西通过GlusterFS被安装在networking上,在RHEL 6服务器上,使用Puppet 3.8和Gluster 3.5。) Puppet对于给定服务器本地的文件没有问题,但是当我尝试在这个共享文件系统上创build或更新文件时,它几乎不能工作。 Puppet认为需要进行更改,但是文件在随后的校验和检查中失败。 下面是Puppet尝试(和失败)创build一个文件的例子: 从缺席变为文件失败:写入磁盘的文件与校验和不匹配; 丢弃更改({md5} 990680e579211b74e3a8b58a3f4d9814 vs {md5} d41d8cd98f00b204e9800998ecf8427e) 这里有一个类似的文件编辑的例子: 从{md5} 216751de84e40fc247cb02da3944b415更改为{md5} 261e86c60ce62a99e4b1b91611c1af0e失败:写入磁盘的文件与校验和不匹配; 丢弃更改({md5} 261e86c60ce62a99e4b1b91611c1af0e vs {md5} d41d8cd98f00b204e9800998ecf8427e) 这并不总是发生,但在我的Gluster文件系统上,至less有90%的时间会发生这种情况。 后面的校验和(d41d8 …)是一个空文件的校验和。 所以我认为这就是发生了什么事情:Puppet认为需要做出改变,并做出改变。 但是在提交写入之前它会再次校验文件,所以它没有看到更改已成功完成,因此它会回滚。 那么两个问题。 首先:这似乎是有道理的,我如何testing/确认情况如此? 第二:假设这是发生了什么,我该如何预防呢? 首先想到的就是在文件更改操作之后几百毫秒的时间内hibernate,但是我不能立即知道这是否可能,更不明智。
我有一个主要的puppet类被添加到我的networking中的所有服务器,我们称之为:profile :: base.pp: class profile::base { … $agent_zbx_templates = ['OS Linux'] … include profile::zabbix::agent } 我具体节点的hiera文件我有: classes: – profile::haproxy 和类configuration文件:: haproxy.pp我想添加一些东西到profile :: base.pp中定义的$ agent_zbx_templates,例如: class profile::haproxy { $local_agent_zbx_templates = $profile::base::agent_zbx_templates + ['APP HAProxy'] class {'profile::base': agent_zbx_templates => $local_agent_zbx_templates } } 当然,当我尝试在节点上执行puppet agent -t时,我已经收到: [root@stress1 ~]# puppet agent -t Info: Using configured environment 'production' Info: Retrieving […]