Articles of 傀儡

是否有唯一的等价条件可以应用于Puppet类或清单中的“文件”命令?

我正在使用CentOS 7与Puppet企业4.4.x为我的木偶大师。 我正在使用Windows Server 2012与Puppet企业4.x为我的木偶代理。 我的目标是根据是否存在文件,有条件地向每个Windows Server应用一个Puppet Manifest中的类。 是否有唯一的条件可以适用于Puppet类或文件命令? 这是我正在尝试的: 当Puppet Agent节点是Linux时,我知道如何在Puppet清单中使用generate。 我不知道如何在Windows上使用它。 当我尝试使用批处理命令或PowerShell命令来testing文件的存在时,我在Windows Server上运行Puppet Agent时出现错误。 错误提示“无法从远程服务器检索目录:SERVER上的错误400:语法错误在'=>'… 86行…” 我用generate命令尝试了各种不同的语法。 我想给一个可以在Puppet Agent节点上运行的命令的输出分配一个variables。 $vari = generate('C:\\WindowsPowerShell\\powershell.exe if(test-path …)') 我试图不使用生成命令并分配一个variables。 $vari = if(test-path …) 似乎没有任何工作。 看来,我的条件逻辑将不得不被应用到清单中的每个文件命令。 exec命令可以使用我创build的onlyif子句。 让具有各种不同命令的类基于具有特定文件的Puppet Agent节点执行将更加可维护。 我试图通过读取Puppet Agent节点上的文件来获取variables。 这失败了不同的原因。 我不知道如何使Puppet中的文件命令(或一类不同的文件)有条件地激活。 另外,我希望Puppet清单(exec和文件命令)保留在一个文件中。 我该怎么办?

是否有可能控制Puppet的系统服务?

我正在使用Puppet来定制系统服务(Docker中的GitLab Runner)。 我想让Puppet设置并启动服务,但是我也希望能够随时停止并重启(例如通过SSH)。 我读了关于Puppet的服务资源 ,但是并没有告诉我们如何去控制这个服务,或者是否有可能。 如果这在Puppet中是不可能的,那么最好的做法是什么呢? 编写多个服务configuration(例如systemd单元文件,init.d shell脚本等)

puppet:nagios服务订阅不工作

我刚刚设置puppet来生成nagiosconfiguration文件,这是伟大的:)我有服务被放在一个名为$nagios_puppet_service_file的文件,这里是nagios服务类的一部分: file { $nagios_puppet_service_file: ensure => file, owner => nagios, group => admins, mode => '0664', notify => Service['nagios'], } Nagios_host <<||>> Nagios_hostextinfo <<||>> Nagios_service <<||>> service { 'nagios': ensure => running, enable => true, subscribe => [ File[$nagios_puppet_host_file], File[$nagios_puppet_hostextinfo_file], File[$nagios_puppet_service_file], ], hasrestart => true, hasstatus => true, } 虽然我的一个服务定义如下所示: $real_nagios_http_port = $nagios_http_port ? { […]

是否有可能运行在Virtualbox实例之外的PHP文件?

我使用Vagrant和Puppet重新创build我的实时VPS,我想在本地testing我的PHP文件。 我有OSX所以在开发过程中,我使用的Apache服务器,但我想在virtualbox上使用相同的PHP文件,而不是复制它们。

木偶代理不要求证书

尝试在单台机器上安装Puppet代理/主服务器(计划在工作时安装更多代理)。 我现在陷入了证书签名过程,感觉应该很简单。 手动启动服务器,它会创build一个ca证书 $ sudo puppet master –no-daemonize –verbose Info: Creating a new SSL key for ca Info: Creating a new SSL certificate request for ca Info: Certificate Request fingerprint (SHA256): 59:31:5B:35:9B:45:4B:36:7F:08:3A:80:2E:4C:78:2F:95:6B:33:45:E4:46:54:E8:8F:33:E8:62:15:1D:A8:DE Notice: Signed certificate request for ca Notice: Rebuilding inventory file Info: Creating a new certificate revocation list Info: Creating a new SSL key […]

无法将shell脚本从主机复制到stream浪盒

主机是Windows 8我准备了一个执行secure_mysql_installation的shell脚本这是文件夹结构 C:\ MyProject的\ Vagranfile 木偶\ 文件\ secure_mysql.sh mainfests \ init.pp 这是我的傀儡代码复制本地主机shell脚本vagrant框 类secure_mysql_installation { 文件{'/tmp/secure_mysql.sh': source =>'puppet:///files/secure_mysql.sh', 确保=>现在, } } 当stream浪了,它给了我一个错误==>默认:错误:/ Stage [main] / Secure_mysql_installation /文件[/ tmp / secure_mysq l.sh]:无法评估:无法find文件:无效挂载'secure_mysql.sh' Cou ld不检索puppet的文件元数据:///files/secure_mysql.sh:找不到文件:无效挂载'secure_mysql.sh'

Puppet错误:SERVER上的400:语法错误

运行puppet时出现语法错误,虽然我不知道为什么: 错误:无法从远程服务器检索目录:SERVER上的错误400:“String”处的语法错误; 预计“)在/etc/puppet/modules/riak/manifests/init.pp:17 这是init.pp文件: # == Class: riak # # Deploy and manage Riak. # # === Parameters # # [*$package_name*] # [*$service_name*] # [*$manage_package*] # [*$manage_repo*] # [*$version*] # [*$ulimits_nofile_soft*] # [*$ulimits_nofile_hard*] class riak ( String[1] $package_name = $::riak::params::package_name, String[1] $service_name = $::riak::params::service_name, Boolean $manage_package = $::riak::params::manage_package, Boolean $manage_repo = $::riak::params::manage_repo, String[1] $version = […]

木偶:如何解决“未知函数hiera_include”?

我使用foreman-installer安装了Puppet,并且安装成功。 然后,我想安装Hiera因为我有一些使用hierafunction的模块,所以我安装了hiera,并在/etc/puppet创build了一个相关的hiera.yaml文件,如下所示: :backends: – yaml :yaml: :datadir: '/etc/puppet/hieradata/%{::environment}' :hierarchy: – fqdns/%{::fqdn} – roles/%{::role} – domains/%{::domain} – common 另外,我创build了一个从/etc/puppet/hiera.yaml到/etc/hiera.yaml的符号链接。 我也创build了所需的文件夹来支持hiera层次结构。 以下是安装在服务器上的gem包列表: ansi (1.4.3) clamp (0.6.2) facter (2.4.4) ffi (1.0.9) foreman_api (0.1.11) gssapi (1.1.2) hashie (2.0.5) hiera (3.0.1, 1.3.4) hiera-puppet (1.0.0) highline (1.6.21) json (1.4.6) json_pure (1.8.2) kafo (0.5.4) kafo_parsers (0.0.2) little-plugger (1.1.3) logging (1.8.1) mime-types (1.16) […]

木偶协调:获得木偶的结果

我怎样才能得到puppet apply -t –noop结果在一些脚本可读的方式? 有什么资源可以申请吗? 我想应该有更好的东西然后GREP 🙂 对下属的木偶基础设施进行一些修改,我想确保应用程序不受影响。 编排scheme: 停止傀儡代理 做我的东西 运行puppet agent -t –noop 如果(3)应用resurces =>回滚! 开始傀儡代理

如何保持新安装的软件包同步从master到puppet的节点?

我有一堆机器(Ubuntu服务器)的设置,这些机器在地理上是分开的,用于开发相同的代码库。 有时我需要从我的网站上安装软件包,然后SSH到其他所有软件包,并安装软件包。 我想自动化,如果我已经在我的机器(主)上安装了一个新的包,它会自动安装到其他人。 这个过程不必是瞬间的,它可以在黑夜中完成。 为此,我试图用“包”资源来使用puppet,但这意味着我需要为每个新安装的包添加另一个条目。 没有其他的方法(比如检查已安装的软件包并在新软件包中插入一个新条目)? 我也看过木偶的apt模块,但是找不到与此相关的任何东西。