我们在启用了自动启动的debian客户端上使用木偶版本2.7.11(在/etc/default/puppet START=yes )。 我们使用带有FQDN( dummyclient.work-network.pri )的证书连接到puppetmaster,它工作正常。 例如,已更改的/etc/default/puppet文件已发送给我们的客户端。 问题是:在重新启动后,我们看到dummyclient发出了一个新的证书请求,我们的木偶大师认为这是一个完全不同的机器。 其中一个原因似乎是我们使用DHCP作为我们的客户名称和IP地址,并且当puppet-agent启动时networking可能还没有完全存在。 (在我们的系统日志中,在NetworkManager提供有关域名服务器和域名的信息之前启动puppet-agent 。)作为进一步certificate, hostname -f在启动期间也是空的(而hostname -s给出正确的答案)。 显然,无论系统运行多久,运行的木偶进程都不会更新这个信息。 (手动启动的木偶使用FQDN。) 是否有可能延迟傀儡开始的时间,或者在networking信息发生变化时触发傀儡重新启动。 (例如,当客户端完全没有networking连接时启动。) 或者,最佳解决scheme是简单地将客户端的/etc/hosts文件中的FQDN硬编码? (但是,再次,这应该是我们的DHCP服务器的工作,不是吗?)
我需要将“dc_local_interfaces”的值设置为“127.0.0.1; :: 1”,但是分号可以防止出现这种情况。 这是我在木偶的定义: augeas { "/etc/exim4/update-exim4.conf.conf": lens => "Shellvars.lns", incl => "/etc/exim4/update-exim4.conf.conf", changes => "set dc_local_interfaces 127.0.0.1;::1", } 我尝试了不同的方法来设置值(不使用撇号,使用撇号,使用反斜线转义的撇号),但没有工作。 事情在我使用augtool时有效: set /files/etc/exim4/update-exim4.conf.conf/dc_local_interfaces "'127.0.0.1;::1'"
我试图在puppet类实例中可选地包含一个参数。 如果提供了一个值,参数应该传递给类,如果它是空的,它不应该是。 这个代码我到目前为止: class vcs ( $path, $ensure, $provider, $source = '', $revision = '', $user = '' ) { vcsrepo { $path: ensure => $ensure, provider => $provider, source => $source ? { '' => nil, default => $source } } } 我已经尝试将source参数的值设置nil ,以防未设置,但Puppet似乎不能理解nil和null 。 (我得到一个fatal: repository 'null' does not exist错误) 基本上,我想能够调用vcs类,只有path并ensure参数是必需的,其他所有可选。
据我所知,storeconfigs是关于存储在MySQL数据库中的客户端数据。 我假设这是存储在/ var / lib / puppet / yaml / node /中的.yaml文件中的数据,它将存储在MySQL数据库中。 [root@tst1-01 ~]# head -10 /var/lib/puppet/yaml/node/tst1-01.domain.nl.yaml — !ruby/object:Puppet::Node parameters: domain: domain.nl hardwareisa: x86_64 clientcert: tst1-01.domain.nl uniqueid: "22acb249" selinux_current_mode: enforcing timezone: CEST role: undefined operatingsystem: RedHat // A lot of more data after this [root@tst1-01 ~]# 保存Puppet客户提供的信息的确切目标是什么? 你想用MySQL数据库中的这些信息做什么?
我有100个RHEL服务器,我想运行VMware工具。 我写了一个可以安装VMware工具的Puppet模块,只需使用package {}: package { 'vmware-tools-esx-nox': ensure => installed, } 有一个没有安装vmware-tools软件包的服务器列表会很好。 Puppet如何帮助我找出哪些服务器没有安装VMware Tools?
我正在尝试使用Vagrant启动和configuration一个EC2实例,它成功地创build了实例,然后我可以使用vagrant ssh来SSH进入它,但是Puppet似乎没有执行任何configuration。 运行vagrant up –provider=aws –provision我得到以下输出 Bringing machine 'default' up with 'aws' provider… WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.1 [default] Warning! The AWS provider doesn't support any of the Vagrant high-level network configurations (`config.vm.network`). They will be silently ignored. [default] Launching an instance with the following settings… [default] […]
我不确定如何提出这个问题,所以如果您觉得不合适,请提出一个修改build议。 我正试图扩展现有的木偶模块,支持不同的操作系统。 我遇到了一个小问题,我不知道如何以一种优雅的方式解决。 在params.pp文件中,安装了特定于操作系统的软件包的定义如下: case $::osfamily { 'RedHat': { $package_server = 'mariadb-server' $package_client = 'mariadb' $php_package_name = 'php-mysql' } … 该模块是这样写的,整个configuration取决于安装$php_package_name 。 我想为不同的操作系统,这没有一个单独的MySQL包的PHP,因此我把$php_package_namevariables设置为undef 。 这会带来一个问题,木偶试图安装Package[undef] 。 什么是防止它的好方法? 我到目前为止的想法是将它设置为false,并且只有if $php_package_name != false $php_package_name激发$php_package_name整个定义。 也许有更好的办法?
有没有任何现成的方式/自定义的事实/等,如果一个给定的主机和端口不能从pipe理系统提供Puppet响应不同? 例如,我有一些产品使用多个目录来阅读用户信息。 一般来说,我想首先列出最快和最接近的服务器。 如果它不可用,我想我的模块能够重写configuration文件去列表中较低的条目。
首先,快速浏览我们的设置: 我们有一个Foreman实例正常运行,我们称之为工头。 木偶大师运作良好,我们称之为木偶大师。 有两个主持人可以从领class和傀儡大师联系,没有防火墙,我们称之为host-a和host-b。 所有主机都运行3.x 我们已经开始扩展我们对Foreman的使用,并且想要启用Run Puppetbutton。 我跟着维基,并在最初的testing中得到了它的工作。 但是,在进一步的testing中,button产生了一些非常不一致的结果。 我似乎还记得,在触发运行中,默认情况下有2分钟的弹幕,但这不是问题。 有时候,当我点击button时,一个主机跳跃并立即开始运行。 但是大多数情况下,它永远不会触发一次运行。 工头在sudoersconfiguration中有以下内容: Defaults:foreman-proxy !requiretty foreman-proxy ALL = NOPASSWD: /usr/bin/puppet kick * 主机在auth.conf中包含以下内容:puppet.conf中的空白namespaceauth.conf和listen = true。 # allow foreman to start puppet runs path /run auth any method save allow foreman.domain.lan 当试图通过工头触发一个Puppet运行时,这个出现在生产日志中。 Started GET "/hosts/host-a.domain.lan/puppetrun" for 192.168.8.48 at 2014-07-15 21:44:59 +0000 Processing by HostsController#puppetrun as HTML […]
我有几台服务器,并希望使用自编码面板提供使用razor服务器的live cd和O / S重新安装。 Razor的文档非常糟糕,我只看到了一些关于O / S安装的信息。 有没有办法使用剃刀启动裸机服务器到LiveCD的ISO?