Articles of 木偶

在puppet中需要rbenv :: compile的语法

我有以下代码: rbenv::compile { "1.9.3-p327": user => "vagrant", home => "/home/vagrant", } exec {"rbenv-global-1.9.3-p327": command => "rbenv global 1.9.3-p327", path => "/home/vagrant/.rbenv/bin", } 我想添加一个要求“rbenv-global-1.9.3-p327”,因为它应该在rbenv :: compile之后执行,但我不知道正确的语法

木偶:枚举组中的所有用户

有没有什么办法来枚举Puppet中的一个组内的所有用户数组,作为一个事实或东西,所以我可以做这样的事情? $users = enumusers('wheel') each($users) |$user| { dostuff{"stuff:$user": user=>$user } } 用户通过LDAP进行pipe理,但是我可以让PuppetselectLDAP用户并使其一致。

木偶确保文件是目录或链接。 或者确保目录只有在缺席?

2个CentOS服务器,我想申请相同的清单。 清单在/var/username下创build一个具有自定义主目录位置的/var/username 问题是在其中一个服务器上/var/username必须是符号链接/data/username 。 所以简单的运行ensure => 'directory',会试图覆盖符号链接。 而且我不能使用ensure => 'present'因为如果它不存在的话默认会创build一个文件。 所以对于新的服务器,这个清单适用于一个空白文件将被创build时,我真的需要它是一个目录。 有没有办法ensure目录或链接? 所以,如果没有创build一个目录。 如果这是一个链接,那么就把它放在一边? 默认情况下,Puppet filetypes在ensure => 'present'时创build一个文件。 或者, if absent ensure directory else leave it alone一种方式? 怎么样的exec ,做一个简单的bash if /var/username not exist then mkdir有点事情? 讨厌,但它会工作。 理想的解决scheme可能是从一开始就避免特殊情况。 在单个清单中有多个configuration变体似乎有点错误。 所以最终我会: 规范化虚拟机(例如,可能会从符号链接切换到绑定安装) 给他们单独的清单,因为他们之间的configuration是不同的 但为了这个问题的目的,我想知道在Puppet中是否有任何选项/语法,我目前不知道。

Sensu / Uchiwa – 没有“检查”列出

我已经使用Puppetconfiguration了Sensu和Uchiwa。 我有客户报告,并检查失败时提高事件。 我检查了我的服务器的/etc/sensu/conf.d/checks/文件夹,由Puppet创build,用于ping检查等。例如: { "checks": { "check-ping-controller.local.net": { "subscribers": [ "sensu" ], "standalone": false, "interval": 60, "handlers": [ "default" ], "command": "/usr/lib64/nagios/plugins/check_ping -H 192.168.66.125 -w 100.0,60% -c 200.0,90% " } } } 如果我在Uchiwa的“客户”页面查看服务器(因为它也在运行sensu客户端来监视自己),我看到在那里列出的检查。 然而,在我的实际“检查”页面中什么也没有显示出来 – 很高兴看到数据中心正在运行的是什么! 有谁熟悉这一点,知道我可能会遇到什么问题? 我在Centos 6.5上运行Uchiwa 0.4和Sensu 0.16。 更新:在过去的20分钟里,我在redis中做了一个“flushall”,并对节点进行了一些更改(取消了一个),导致了Sensu服务的更新。 这似乎已经解决了问题,并且检查出现! 我猜这是redis的'flushall'命令,但是我对Redis不熟悉,不知道为什么会有帮助… 任何想法SF?

Puppet:如果已经安装了特定的包,如何实现package()的install_options

如果有人对这个问题想一个更好的标题:请相应地改变它。 环境: Debian jessie 8.5 木偶大师:3.8.5 木偶剂:3.7.2 apt:1.0.9.8.3 问题: 节点上已经安装了一个特定的软件包,让我们以needrestart为例: # dpkg -l | grep needrestart ii needrestart 1.2-8+deb8u1 使用下面的代码: package{[ 'needrestart', ]: ensure => installed, # latest won't work, either install_options => ['-t', 'jessie-backports'] } 我预计needrestart被重新安装/升级到jessie-backports的版本。 但是,这不会发生,没有重新安装/升级发生。 在(debugging)日志里面,没有什么值得显示的。 解: 如果这不是有意的:任何人都知道一个聪明的方法呢?

傀儡最佳做法,为自定义模块存储脚本

我有Windows代理节点。 我正在创build自己的模块,它有一些自定义的PowerShell脚本。 我想知道我应该在哪里保留这些PowerShell脚本。 在我的模块本身在一些文件夹(比如scripts目录)或者我的模块目录之外的地方? 在这种情况下,推荐/最佳做法是什么? git/ – client – hieradata – manifests – modules – my_module – scripts/ # 1) Should it be within this dir? – my_script.ps1 – scripts/ # 2) Should it be within this dir or elsewhere? – my_script.ps1 – templates

为什么傀儡模块生成一个Gemfile,它的目的是什么?

我最近运行puppet module generate ,并最终导致了一大堆废话,看起来不必要的一个简单的模块。 我的意思是,许多最小的模块足够模板化一个或两个configuration文件,并让开源Puppet模块完成繁重的工作。 Puppet的文档解释了大部分puppet module generate在这里puppet module generate : https://docs.puppet.com/puppet/4.9/modules_fundamentals.html 但是,我没有看到关于Gemfile的任何内容。 用puppet module generate的Gemfile生成的是什么? $ puppet module generate nathan-myapp_consul $ cd myapp_consul/ $ ls Gemfile README.md Rakefile examples manifests metadata.json spec 这里是这个文件的内容: source ENV['GEM_SOURCE'] || 'https://rubygems.org' puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3'] gem 'metadata-json-lint' gem 'puppet', puppetversion gem 'puppetlabs_spec_helper', '>= 1.0.0' […]

卸载/升级Puppet

下面的问题都是关于卸载/升级木偶的话题: 如何卸载以前版本的puppet? 我需要删除哪些文件以及它们位于何处? 有没有一个脚本自动做到这一点? 在升级之前,是否需要手动删除以前安装的Puppet版本?

自动部署和configurationWindows服务器

我是一位经验丰富的UNIX和Linux系统pipe理员,即将开始为混合UNIX / Windows商店工作。 我一直在使用像Puppet,Chef,FAI等工具自动部署服务器。我还没有在Windows上工作了10多年。 我想知道是否有人有什么可比的工具来自动部署和configurationWindows服务器的提示。 在我的UNIX环境中,我可以设置一些东西,这样一个盒子就可以从铁pipe冷启动,并且在没有任何人工干预的情况下启动并运行。 回到那个时候,我用了幽灵,但是我认为从那以后,艺术的状态已经改善了。 任何提示避免使用的工具也是受欢迎的。 我可能需要部署Windows IIS和SQL服务器。 谢谢!

木偶代理木偶大师(在nginx / ruby​​1.9上运行)SSL证书问题

我有两台机器,木偶大师 – 主机名puppet – 和一个孤独的客户端,主机名git 。 主机上的木偶代理没有问题。 git上的代理程序失败,出现'400没有发送必需的SSL证书'。 首先,木偶大师的configuration,这是一个瘦/ nginx事件: puppet:~# ruby -v ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux] puppet:~# puppet –version 2.7.9 puppet:~# cat /etc/nginx/sites-enabled/default server { listen puppet:8140; ssl on; ssl_certificate /var/lib/puppet/ssl/certs/puppet.pem; ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppet.pem; ssl_ciphers ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP; ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem; ssl_verify_client on; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Client-Verify […]