我是新来的傀儡 我读了一堆,设法写一个简单的(可能笨拙的)清单来configuration一个主机和一个类似的简单的结构脚本来处理pre-puppet设置。 太好了,时间更加严肃。 我在apache2下configuration了一个puppet master。 (我在ubuntu 14.04上安装了3.8版的包,感谢来自puppet实验室的deb …) 到目前为止,这么好,但是现在我仍然陷入了一些困境,尽pipe他们正在进行很多的search和比赛。 最终,这归结于如何设置回归testing,以便我相信我总是可以重新创build我的基础。 木偶大师正在apache2下运行。 我认为这是健康的,尽pipe它不抱怨,我在8140服务。但是我想要一个更好的方式来确认,而不是没有错误。 有没有方法来询问主人的健康? 我希望能够做自动化testing。 对于代理人(我的(小)舰队中的个别主机),我可以提出stream浪汉的虚拟名称,告诉他们他们的名字是X,然后做一个傀儡申请。 那么我可以看到主机是否按照我期望的主机X的方式出现。然后我可以在虚拟机上运行一个脚本来检查主机应该做的事情。 但我想自动化,但我奇怪的是没有find常见的食谱这样做。 我敢打赌,这不是我需要发明的东西。 任何指针? 同样的,我也想为主人做自动化testing。 所以这是(1)和(2)在一起,因为我不知道如何testing主。 感谢任何指针。
在我目前的设置中,我有一个主机configuration脚本,需要在某个DC中新configuration一个虚拟机,发出我需要运行puppet apply命令(确保hostname已经设置,puppet已经安装,可以看到它木偶configuration)。 然后puppet apply照顾其余的(加上面料部署我们的软件)。 一切正常,但安装需要的puppet模块目前发生在我的主机脚本。 这完美的工作,直到我想安装新的模块,然后我必须在现有的主机上手动sorting。 看来傀儡应该可以做到这一点,但我还没有find正确的指示。 # If only this worked… module { 'maestrodev-rvm': ensure => present } 我看过木偶图书pipe理员 ,但似乎增加了更多的复杂性,而不是解决我们安装的小数量的模块。 如果/当我们需要更复杂的东西时,看起来像是一个解决scheme。 我错过了什么吗?
我有一个运行exectypes的puppet定义来创build一个如下所示的mysql用户: define mysql::mysql-user ($user, $host="$mysql_subnet", $passwd="", $ensure="present") { exec { "mysql -e \"CREATE USER '$user'@'$host' IDENTIFIED BY PASSWORD '$passwd'\"": path => "/usr/bin:/bin", unless => "mysql -e \"SELECT Host,User FROM mysql.user WHERE Host='$host' AND User='$user'\" | grep $user", require => Service[ mysql ], } } 所以,我想让$ ensure参数正常工作,调用一个完全不同的exec来删除用户。 最好的办法是什么呢? 我已经尝试了以下设置: define mysql::mysql-user ($user, $host="$mysql_subnet", $passwd="", $ensure="present") { […]
傀儡编辑提示页面似乎build议使用eclipse&dltk(推测是ruby工具)将有助于编辑.pp文件。 http://projects.puppetlabs.com/projects/1/wiki/Editor_Tips 我看不出任何区别,或者使用DLTK 1.0和安装的ruby插件获得语法高亮显示。 有什么我失踪或日食configuration我需要设置它开始做语法高亮和validation我的木偶模型?
我有一个puppet模块来设置几个Gigaspaces PU。 其中每个variables都有很多variables放置在configuration文件模板中。 我们还使用了几个不同的环境,所以这些variables重复多次以包含每个环境的值。 我的问题是存储这些variables的最佳位置是什么? 一个自己的类,一个外部的.pp我导入,或者其他的东西?
如何在node.pp文件中对某些class / define进行分组? node 'node1' { ntp { ntp: server_is => "node" } dns_resolv { dns: server_is => "node" } } 而且,我有一些模块:“oracle rpm”,“sshkey users”,“内核参数”,…我不知道如何组合一个独特的类,例如“oracle-base”,其中包含所有我以前的模块,那么,如果我声明一个节点“oracle-base”,它会自动configuration我的节点为oracle的模块。 你是怎么做到的? 谢谢 !
我查看了Puppet Master CloudForms模板,了解到它正在使用CloudInit烘焙到Amazon Linux AMI中。 但是,我想要使用现有的Ubuntu 11.10服务器映像,并将服务器作为Puppet Master引导。 通过CloudFormation和BootStrapping文档阅读,似乎这是可能的,但没有足够的日志生成在服务器上或堆栈创build时。 创build一个自定义的AMI是否有办法用现有的AMI来做到这一点?
puppet-rvm FAQ提到他们没有扩展packagetypes,因为“pipe理多个Ruby版本变得更加困难,几乎不可能为特定的Ruby版本安装gems”。 我不需要多个Ruby版本,也不需要gem。 puppet-rvm的作者暗示可以扩展木偶types。 谷歌search这个话题没有引起任何关注。 如何扩展内置的木偶types?
我有一组configuration文件需要部署到每个服务器上的多个位置,每个服务器都有不同的内容,但是他们都共享相同的位置结构。 我正在尝试通过创build一个可以多次使用的公共类来减less我在清单中的复制量。 这是一个简单的文件结构的例子: /home/bob/config/files.cfg /home/bob/config/settings.cfg /home/sue/config/files.cfg /home/sue/config/settings.cfg /home/ann/config/files.cfg /home/ann/config/settings.cfg 这是我写的清单。 class config-generic { file { "/home/$name/config/files.cfg": owner => $name, group => $name, source => "puppet://puppet.domain.com/files/home/$name/config/files.cfg", mode => 644, } file { "/home/$name/config/settings.cfg": owner => $name, group => $name, source => "puppet://puppet.domain.com/files/home/$name/config/settings.cfg", mode => 644, } } 在类的第一次使用它工作正常。 node "client1", "client2" { class {'config-generic': name => […]
主要作为一个学习练习,我试图使用定义来创build用户。 没有错误,但用户不会被创build。 添加通知让我怀疑问题是执行的顺序(但也可能是其他地方的新手)。 我正在使用木偶2.7.9。 这是我的代码。 # manifests/nodes.pp node /song.*/ { include users User <| group == developers |> } # modules/users/manifests/init.pp class users { include users::people } # modules/users/manifests/people.pp class users::people { require groups @users::account { "michael": username => "michael", name => "Michael C. Harris", uid => 1000, gid => "developers", password => '{encrypted password}', […]