Articles of 木偶傀儡

木偶客户端caching但不更新本地事实

我有一个服务器pmaster-dev是一个puppet客户端(它的主人是pmaster )。 服务器pmaster-dev本身充当几个客户的木偶大师。 当pmaster-dev与pmaster签入时,它将其事实caching到本地sqlite3数据库文件/var/lib/puppet/state/clientconfigs.sqlite 。 在每个后续的检查中, pmaster-dev都不会更新这个本地caching。 因此,它的事实总是陈旧的。 pmaster的其他客户端(包括pmaster本身)永远不会caching。 我们如何告诉它更新caching或禁用caching事实? 为什么在pmaster的其他客户端不caching的时候caching? 我们在Debian挤压系统上运行2.7.18。 这是pmaster-dev的/etc/puppet/puppet.conf文件: [agent] server = pmaster.example.org environment = master configtimeout = 300 logdir = /var/log/puppet vardir = /var/lib/puppet ssldir = /etc/puppet/ssl rundir = /var/run/puppet ca_server = puppetca.example.org ca_port = 8141 graph = true report = true pluginsync = true classfile = $vardir/classes.txt localconfig = […]

将木偶安装过渡到使用目录环境需要什么?

我目前正在运行一个小木偶大师+客户端configuration,不利用Puppet的目录环境function。 我的木偶版本是3.6。 我已经尝试了以下内容: 在傀儡大师:添加environmentpath=$confdir/environments puppet.conf 在puppet master上:在$confdir/environments/ (例如/etc/puppet/environments/production )中创build必要的path, 将我现有的模块和清单( site.pp )添加到生产环境中 切换到这个git分支,并在客户端运行testingpuppet agent -vt 不幸的是,我收到以下错误: Info: Retrieving pluginfacts Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/pluginfacts Info: Retrieving plugin Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins Notice: /File[/var/lib/puppet/lib/puppet]: Dependency File[/var/lib/puppet/lib] has […]

如何覆盖子节点中的puppet类参数?

我正在尝试完成如下所示的内容: node 'basenode' { class { 'puppet' : disable => false, } } node 'child' inherits 'basenode' { class { 'puppet' : disable => true, } } 这给了我: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate definition: Class[Puppet] is already defined 我怎样才能覆盖这个单一节点的设置,仍然有一个参数化的类?

在puppet中创build文件之前检查目录?

我试图做一个函数哪个目录/文件将被创build只有当第一个目录存在,而不是它必须被跳过,因为失败的依赖。 我试过这个“唯一”的解决方法 ,但不幸的是,它不适用于我的function。 $check_directory = file("/path/to/directory") if($check_directory != '') { file{"/path/to/config": ensure => directory, mode => 0755, } file{"/path/to/config/a.conf": ensure => file, mode => 0755, content => template("config_template.conf"), } } 我有一个错误: Error: Is a directory – /path/to/directory 有没有办法做任何其他的陈述? 或者任何参数? 谢谢。

如何排除几个节点的Puppet模块?

我有80个节点,78个需要有一个特定的模块,除了2个。 [root@puppetmaster puppet]# cat hiera.yaml :backends: – yaml :hierarchy: – environment/%{::environment}/%{::hostname} – environment/%{::environment} – common :logger: console :yaml: :datadir: '/etc/puppet/hieradata' [root@puppetmaster puppet]# cat hieradata/common.yaml — classes: – ldap – motd – ntp – puppet-conf [root@puppetmaster puppet]# cat hieradata/environment/tst/tst-01.yaml — classes: – puppet-update – public-keys [root@puppetmaster puppet]# 除了tst-01和tst-02服务器之外,我希望所有节点都具有ldap模块。 我如何从这两台服务器中排除这个模块? 一个解决scheme将是所有节点使用80.yaml文件,并添加“ – ldap”78这些.yaml文件,但这似乎是糟糕的devise。 从inheritance列表中排除模块将是更清洁的。

活跃的木偶代理如何处理傀儡大师?

说傀儡代理正在刷新,我停止了木偶主服务。 是否有任何意见可能会导致不完整或损坏的设置被推出,如下所述? 背景: 我正在使用持续集成和版本控制(竹和藏)为我的木偶configuration文件。 我遇到了重新部署过程中的问题。 当我为我的生产分支做拉请求时,它是最引人注目的,但是它也发生在其他地方。 木偶代理可能试图访问已被删除之前被删除的资源文件。 尽pipe这种情况非常罕见,但却造成了各种各样的破坏,尤其是在使用文件语句推出整个目录的模块中。 我提出的最明智的做法是在部署期间停止傀儡大师的服务,然后把它踢回去,但是我没有看到任何关于阻止傀儡大师可能仍然存在的后果用过的。

傀儡证书不符合EC2

我正在通过gem(rhel6)在ec2中build立一个puppetmaster(2.7.6),我遇到了证书名称的问题,并让主人能够自己说话。 我的puppet.conf看起来像这样: [main] logdir = /var/log/puppet rundir = /var/run/puppet vardir = /var/lib/puppet ssldir = $vardir/ssl pluginsync = true environment = production report = true certname = master 当我启动puppetmaster进程时,ssl目录如下所示: ssl/private_keys/master.pem ssl/crl.pem ssl/public_keys/master.pem ssl/ca/ca_crl.pem ssl/ca/signed/master.pem ssl/ca/ca_crt.pem ssl/ca/ca_pub.pem ssl/ca/ca_key.pem ssl/certs/ca.pem ssl/certs/master.pem 我有一个/ etc / hosts条目,将'puppet'主机名指向localhost,这样我就不必更改'server'选项。 当我运行代理时,我得到以下内容: # puppet agent –test info: Retrieving plugin err: /File[/var/lib/puppet/lib]: Failed to generate […]

Puppet:基于命名约定的条件文件源

我正在为我的环境在木偶上滚动 – 我希望有一个基于模块本身是否包含基于命名约定的文件的条件file资源。 所以在视觉上,假设一个名为“mysql”的模块,它的布局: mysql/ /files /etc/ my.cnf my.hostname1.cnf my.hostname2.cnf /manifests init.pp … 所以我想要块来validation模块的资源是否存在,并采取相应的行动,伪造: file { '/etc/my.cnf': if -f 'puppet:///mysql/etc/my.$hostname.cnf' { source => 'puppet:///mysql/etc/my.$hostname.cnf' } else { source => 'puppet:///mysql/etc/my.cnf' } } 这样一来,不必pipe理一个csv文件或.pp文件与主机特定的情况下声明 – 这是可能的吗?

当地的“傀儡”和“傀儡”之间的区别

我们正在从包含所有configuration的庞大木偶存储库中迁移出来。 这个回购包含的东西实际上不应该在每个节点上,所以基于傀儡系统的系统似乎是适当隔离事物的最佳方式。 我遇到的问题是,当复制到本地节点和puppet apply /etc/puppet/manifests/site.pp运行相同的回购工作正常。 我们的安装运行非常干净。 当我把傀儡回购傀儡傀儡,并让代理人签字时,除了向傀儡大臣报告本地目录之外,没有其他任何事情要做。 有一段时间,我还没有能够重现这样做的configuration,我们的一个自build模块是抛出一个错误,提示它试图从本地机器的modules目录复制文件,而不是傀儡大师喜欢它应该。 这表明在构build本地使用的回购和通过puppetmaster时可能会有模块和清单的语法差异。 如果有什么区别,它们是什么,或者转换工作的主要起点是什么? 主/etc/puppet/puppet.conf上的/etc/puppet/puppet.conf文件: [main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter pluginsync=true # Set up Environments ## Each environment has a dedicated 'modules' directory under /environments/ from ## which puppet will preferentially pull. Otherwise, it'll use the top level ## 'modules' directory. That is where common code goes. [master] […]

puppet cert list -all:Error:header too long

我试图重新启动我的木偶主,但错误仍然存​​在。 也可以从所有试图join的木偶代理处看到它。 puppet agent –server puppet.example.com –waitforcert 60 –test –verbose Error: Could not request certificate: Error 400 on SERVER: header too long