Articles of 傀儡

在精确的32位虚拟机上用木偶(+ vagrant)指定用户密码的问题

我使用vagrant +木偶来configurationprecise32 VirtualBox服务器以编程方式添加用户。 我有一切工作,但我似乎无法自动设置密码由puppet。 这是我的木偶剧本: package { "ruby-shadow": name => "libshadow-ruby1.8", ensure => installed, } user { 'biff': home => '/home/biff', shell => '/bin/bash', uid => 201, managehome => 'true', password => '$6$kxHLEuHW$zHRAZcVLu0XzukqU79bT.PEg./FfcloJiWmlH2rf.Lmnyke7uAaHkQTXvErqikWeraSiHFBwDSMDV4hRImqjr7.', groups => ['sudo', ], requires => Package['ruby-shadow'], } 为了得到散列$6$kx… ,我login到虚拟机,运行sudo passwd biff来设置系统的密码,然后把散列密码(第二个字段在/etc/shadow )复制到上面的puppet脚本。 删除用户重置密码并重新运行木偶脚本后,密码未设置,我根本无法login: [precise32]$ sudo grep biff /etc/shadow biff:!:15862:0:99999:7::: 事实上,它看起来像用户biff已被locking在系统外( / […]

是否有可能在MCollective客户端和服务器端使用不同的连接器?

可以在客户端使用STOMP连接器,在服务器端使用ActiveMQ? 这是我的configuration: #client.cfg connector = stomp plugin.stomp.host = localhost plugin.stomp.port = 6163 plugin.stomp.user = mcollective plugin.stomp.password = password #server.cfg connector = activemq plugin.activemq.pool.size = 1 plugin.activemq.pool.1.user = mcollective plugin.activemq.pool.1.password = password plugin.activemq.pool.1.host = localhost plugin.activemq.pool.1.port = 6163 将服务器切换到ActiveMQ后,mco ping不会得到响应。

傀儡仪表板显示器通过木偶

有没有其他人发现奇怪的是,傀儡实验室推荐像monit这样的工具来监视仪表板工作进程? http://docs.puppetlabs.com/dashboard/manual/1.2/bootstrapping.html 监视监视器为了获得更高的可靠性,您可能需要使用诸如god,monit或runit之类的标准服务监视工具来监视脚本/ delayed_job监视器。 你也可以通过其他方式来运行delayed_job工作,因为它正在成为Rails世界中相当标准的组件。 对我来说,就像在傀儡的环境中,这将是最好的傀儡pipe理! 只有我想没有进程 资源types ? 似乎木偶的所有stream程pipe理都围绕着适当的服务 。 这就是说有没有办法通过puppet来pipe理仪表板工作进程还是应该开始研究monit ?

紧凑的节点定义

我使用定义的types为我的autofs坐骑创build了一个新的模块,所以我可以根据需要在我的节点定义中指定许多新的坐骑。 所以例如我的节点定义如下所示: node "backend" { include autofs autofs::client { 'home': mount_name => 'home', local_dir => '*', mount_options => '-rw,intr,noatime', nfs_server => 'nfs-server', remote_path => '/share/home/&', } autofs::client { 'opt': mount_name => 'opt', local_dir => '/opt', mount_options => '-rw,intr,noatime', nfs_server => 'nfs-server', remote_path => '/share/software', } 有没有反正我可以压缩我的节点定义,所以如果我有50个不同的坐骑,我不必让他们都列在我的节点下,而是可以在一个单独的包含文件?

傀儡执行中的问题

我想用puppet运行下面的命令: sb2-init rasp /home/ubuntu/raspberry_pi_development/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc 在木偶: exec { "initSB2": command => "sb2-init rasp /home/ubuntu/raspberry_pi_development/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc" , cwd => "/home/vagrant/raspberry_pi_development/rootfs", path => "/home/vagrant/raspberry_pi_development/scratchbox2/bin", user => 'vagrant', logoutput => true, } sb2-init命令在“/ home / vagrant / raspberry_pi_development / scratchbox2 / bin”目录下,我想在“/ home / vagrant / raspberry_pi_development / scratchbox2 / bin”文件夹中执行这个命令。 当我执行这个傀儡 – 清单我得到: notice: /Stage[main]//Exec[initSB2]/returns: /home/vagrant/raspberry_pi_development/scratchbox2/bin/sb2-init: line 6 sename: […]

木偶3.3.1证书validation失败

我很难在主站和从站上使用puppet 3.3.1(puppet opensource)设置一个主/节点场景。 奴隶在Windows和SLES机器上。 师父也在SLES机器上。 问题:我第一次启动代理程序时,会创build一个新的证书并将其发送给主服务器。 在主人,我可以看到证书请求,并接受它。 当我再次启动代理程序时,出现以下消息: Running Puppet agent on demand … Warning: Unable to fetch my node definition, but the agent run will continue: Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: c ertificate verify failed: [certificate signature failure for /CN=my-master.com] Info: Retrieving plugin Error: /File[C:/Dokumente und Einstellungen/All Users/Anwendungsdaten/PuppetLabs /puppet/var/lib]: Failed […]

Puppet 2.7当puppet:///文件在主服务器上更新时,确保客户端上的文件更新

我有一个Perl脚本,我推送到我的所有木偶Linux客户端。 我已经编辑了我的脚本,模块/模块名/文件/脚本/脚本脚本在Puppet主,但客户端并没有得到改变,因为他们有文件。 显然它没有校验和或使用modtime。 确保文件与主版本保持一致的最佳做法是什么? 我是否需要编写校验和逻辑,还是已经内置了function? 我最初推动的代码是: file { '/sbin/a_script': ensure => present, mode => 744, owner => root, source => "puppet:///modulename/scripts/a_script" } 显然删除这个文件并把它拉回来是一个拙劣的解决scheme,我希望能有更多的口头expression。 更新 Puppet在下一次运行时在puppet:/// filebucket中执行校验和同步文件,我必须有一个错误导致文件声明不能运行。 当我将声明移到site.pp时,它将这些更改同步到客户端上已经存在的文件。

重命名OpenVPN服务器 – 如何防止丢失所有客户端?

我被指示更改一组服务器上的域名。 其中之一是OpenVPN,我想知道如何切断所有的客户端。 每个客户端也在运行木偶,所以我可以更新.conf文件。 Unf木偶不是很好的解决scheme,比如“暂时这样做,现在停止这样做,而不是这样做”。 这似乎更适合“总是这样做”。 **应该注意的是,puppet正在使用VPN进行通信,因此可能会做出更改,以切断其进一步更改的能力。 一些可能性: 使用新的VPN名称设置虚拟机。 更新客户端指向此。 重命名原始机器并重新更新客户机。 在原始机器上通过不同的(非默认)端口添加第二个VPN服务器实例。 在洗牌服务器名称时进行相同的双重命名。 用服务器的新地址更新所有的VPN客户端。 他们将失去与服务器的联系,直到服务器地址更改。 选项3似乎是最直接的,但也是最困扰我的一个。 VPN客户端分散在整个城市,如果单个地修复一个巨大的中断,将会是一个巨大的麻烦。 我只是挑剔? 有一个选项4更有意义吗?

外部事实不是在第一次木偶运行

介绍: 我们使用puppet通过自定义事实来configuration节点,然后在hiera中引用它。 事实可以在/etc/facter/fact.d/中的黄金映像中,或通过pluginsync(两者都没有区别) 版本: dpkg -l|grep puppet hi facter 1.7.5-1puppetlabs1 amd64 Ruby module for collecting simple facts about a host operating system hi hiera 1.3.4-1puppetlabs1 all A simple pluggable Hierarchical Database. hi puppet 3.4.3-1puppetlabs1 all Centralized configuration management – agent startup and compatibility scripts hi puppet-common 3.4.3-1puppetlabs1 all Centralized configuration management 设置很简单: 木偶大师: cat hiera.yaml […]

服务器configuration没有PXE

我在不同的数据中心有很多服务器,应该不时地重新安装。 我对Puppet很熟悉,所以我可以在启动后configurationO / S,但我无法执行自动重新安装。 像Foreman或Razor这样的裸机供应的所有工具都使用iPXE引导的优势来运行微型发行版,并从主服务器中提取所有必要的kickstart或preseed文件等等。 但对我来说,这是不可能的,因为我无法使用我自己的DHCP和iPXE等将服务器组织到networking中。 但是,我正在使用的几乎所有数据中心都具有livecd / rescue模式function。 所以我想也许有一个自动裸机configuration工具,可以使用,如果我有一个SSH访问LiveCD? 它可以简单地SSH进入系统并直接运行命令,或者设置本地iPXE服务器,启动QEMU,安装O / S,然后重新启动并运行Puppet进一步configuration过程。 那么它是否存在? PS。 在写这个答案的最后,我想也许我可以用一个bsh脚本解决PXE问题,通过SSH安装GRUB2到LieveCD,然后通过HTTP下载Razor / Foreman所需的所有东西?