草庐IT

ruby - Puppet:嵌套哈希/字典,数组:如何在 erb 中访问?

玩puppet,我最终进入了一个嵌套的字典/哈希-看起来或多或少像$settings={"var1"=>{"ip"=>"0.0.0.0","port"=>"1234","option"=>["foo","bar"],"machines"=>{"maschine-1"=>{"ip"=>"1.2.3.4","port"=>"1234"},"maschine-2"=>{"ip"=>"1.2.3.5","port"=>"1235"},}}}但是,我还没有设法在相应的erb模板中正确解析它。:optionserver:因此,我可以毫无问题地获取顶级字典中的值,即“ip”和“port”,但是,当我

ruby - 如何使用 Puppet Ruby DSL 定义类继承

我有一个Puppet类“Ruby”:#init.ppclassruby{package{'libldap-ruby1.8':ensure=>'installed'}}然后我有一个用PuppetRubyDSL编写的类,它应该继承这个Puppet类:#ldap.rbhostclass'ruby::ldap'do(...)end如何定义ruby​​::ldap继承ruby​​? 最佳答案 遗憾的是,Google网上论坛上的Puppet开发人员不回答任何相关问题(link1、link2)。 关于

ruby - 将 puppet 路径映射到绝对路径

我正在尝试为puppet编写一个新函数,它将puppet源路径作为参数,例如:puppet:///modules/foo/some/dir然后函数需要分析这个目录,所以我需要弄清楚目录的绝对路径,这取决于环境,例如:/srv/puppetmaster/stable/modules/foo/files/some/dir我可以使用什么函数来实现这一点? 最佳答案 不确定是否有内部方法/函数来执行此操作,但仍然可能有几种方法可以实现此目的。检查ENV是否有任何puppet配置。从您的脚本调用system()-puppet可以转储模块路径的

ruby - 在 CircleCI 中指定 Puppet + Ruby 版本矩阵

我正在使用CircleCI作为Travis的替代品,使用我编写的Puppet模块。我的.travis.yml有一个Puppet和Ruby版本的矩阵,看起来像这样:---language:rubybundler_args:--withoutdevelopmentbefore_install:rmGemfile.lock||truervm:-1.8.7-1.9.3-2.0.0-2.1.0script:bundleexecraketestenv:-PUPPET_VERSION="~>3.2.0"-PUPPET_VERSION="~>3.3.0"-PUPPET_VERSION="~>3.4.0

ruby - 除非目录存在于 puppet 中,否则执行命令

如果puppet文件中不存在目录,如何执行命令?exec{"my_exec_task":command=>"tarzxf/home/user/tmp/test.tar.gz",unless=>"test-d/home/user/tmp/new_directory",path=>"/usr/local/bin/:/bin/",}我收到错误消息:“无法评估:找不到命令‘test’”。这也是检查目录是否不存在的最佳做法吗? 最佳答案 test在/usr/bin为我工作,所以将它添加到路径可以解决错误。unless=>'bash-c"tes

ruby - 如何确定puppet类的运行顺序?

我是Puppet部署的新手。我定义了两个类classtaskname{exec{"deploy_script":command="cp${old_path}${newpath}",user=root,}cron{"cron_script2":command="pyrhton${new_path}",user=root,require=Exec["deploy_script"]}}classtaksname2{exec{"deploy_script2":command="cp${old_path}${newpath}",user=root,}cron{"cron_script":comm

ruby - 如何测试将 puppet 模板应用于给定测试参数的结果

我有以下puppet模板文件solr.json.erb:{"servers":[{"port":"","host":"localhost","queries":[{"outputWriters":[{"@class":"com.googlecode.jmxtrans.model.output.StdOutWriter",}],"obj":"solr/market_:type=queryResultCache,id=org.apache.solr.search.LRUCache","attr":["hits","hitratio"]},],"numQueryThreads":2}]}我想

ruby - 在 osx 10.7 上运行 Vagrant/Puppet 的问题

我才刚刚开始使用Vagrant和Puppet.我能够让Virtualbox运行,但现在我想自动化安装在它上面的软件。在我的Vagrantfile中我有:Vagrant::Config.rundo|config|config.vm.box="precise64"config.vm.forward_port80,9090config.vm.forward_port27017,27017config.vm.provision:puppetdo|puppet|puppet.manifests_path="manifests"puppet.manifest_file="default.pp"en

ruby - 如何从 Puppet 函数中读取 Hiera 值?

我必须编写一个函数,该函数将按顺序执行以下操作以读取变量的值:检查是否定义了一个因子变量。如果没有,从Hiera中读取变量的值。如果没有,使用默认值。我已经设法在我的Puppet脚本中使用这个if条件来完成它。#fooisreadfrom(inorderofpreference):facterfact,hierahash,hardcodedvalueif$::foo==undef{$foo=hiera('foo','default_value')}else{$foo=$::foo}但我想避免为我希望以这种方式解析的每个变量重复这个if条件,因此想到编写一个格式为get_args('fo

ruby - Puppet 4.3.2 客户端节点无法通过 SSL 连接到 Puppet 服务器

我刚刚根据theguideintheofficialdocs对我所有的Puppet认证进行了干净的再生.但是,我在Google、SO或其他任何地方似乎都没有好的线索时遇到了这个错误。[vagrant@clientpuppet]$hostnameclient.example.com[vagrant@clientpuppet]$puppet--version4.3.2[vagrant@clientpuppet]$sudopuppetconfigprintvardirssldirvardir=/var/opt/puppetlabs/puppetserverssldir=/var/opt/pu