我正在尝试安装Oracle的Vagrant / Puppet的jdk 。 这里是我的Vagrant file的相关部分: config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.options = "–verbose –debug" puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "java.pp" end 这里是我的java.pp puppet文件: class java { package { "python-software-properties": require => Exec['apt-update'], ensure => installed } exec { 'add-webupd8-key': command => 'sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys EEA14886', path => [ "/bin/", […]
我有一个puppet类“php”,如下所示: class php { case $ operatingsystem { debian:{ 包{'php5-common': 确保=>最新, provider => apt, } package {'php5-mysql':ensure => latest,provider => apt} package {'php5-gd':ensure => latest,provider => apt} package {'php5-fpm':ensure => latest,provider => apt} package {'php5-mcrypt':ensure => latest,provider => apt} package {'php5-memcache':ensure => latest,provider => apt} } } 服务{'php5-fpm': 确保=>正在运行, enable => true, } } 我将php类包含在/etc/puppet/manifests/site.pp中的节点configuration中 […]
notice ("This should be echoed") service { "iptables": ensure => "stopped", } 这并不能阻止iptables,我不知道为什么。 service iptables stop工作正常。 Puppet 2.6.17在CentOS 6.3上。 更新: /etc/puppet/manifests/nodes.pp node 'linux-dev' { include mycompany::install::apache::init include mycompany::config::services::init } /etc/puppet/modules/mycompany/manifests/config/services/init.pp class mycompany::config::services::init { if ($::id == "root") { service { 'iptables': #name => '/sbin/iptables', #enable => false, #hasstatus => true, ensure => stopped } notice […]
我正在考虑使用Puppet Enterprise将服务器/服务集合部署到Amazon Web Services。 据我所知,最好的方法是通过CloudFormation 。 根据我读过的内容,CloudFormation定义了如何设置/创build服务。 而使用Puppet来设置和维护服务器/服务configuration。 所以有两个问题: 我可以使用Puppet创buildElastic Beanstalk吗? 是否有可能维护Elastic Beanstalk,这将如何工作? 背景 我的组织使用Elastic Beanstalk发布其现有的Web应用程序/服务,我希望保留此工作stream或从Beanstalk转换到其他时间允许的其他东西。
我正在尝试使用puppet将所有用户添加到系统中,并将其全部添加到一个组中。 但是,我不断收到 Error 400 on SERVER: Duplicate declaration: Group[users] is already declared in file *filename*:17 cannot redeclare at *filename* on node *server* 如果我将用户更改为variables名称,例如$ title,则可以正常工作。 我怎样才能做到这一点静态组名像'用户'? 我正在使用下面的configuration: 注:我可能在下面input错误。 我必须重新键入所有这些,因为我所在的系统没有Internet访问权限。 define users::virtual ($uid, $realname, $password) { user { $title: ensure => 'present', uid => $uid, gid => $'users', shell => '/bin/bash', home => "/home/${title}", comment => $realname, […]
我有两个文件夹 – 一个是“public_modules”,另一个是“private_modules”。 当我启动一个新的Vagrant机器时,'public_modules'文件夹中填充了我的Puppetfile中所描述的模块(为简单起见,这些都是puppetforge上的所有模块)。 'private_modules'包含我需要更改公共模块的任何修改和设置。 通过使用图书pipe理员傀儡,我不需要检查这些公共模块,也不依赖于git子模块。 考虑下面的清单文件: class drupaldb { class { '::mysql::server': root_password => 'platform', override_options => { 'mysqld' => { 'max_connections' => '1024', 'bind-address' => '0.0.0.0' } } } mysql::db { 'drupaldb': user => 'root', password => 'platform', host => '%', grant => ['SELECT', 'UPDATE', 'DELETE'], } service { 'mysql': ensure => running, […]
我正在考虑迁移我们的部署过程到使用Puppet。 我首先部署了我们用于系统的第三方应用程序,其中包括由Zookeeper合奏组织的Solr Cloud。 使用内置的Zookeeper部署Solr云相当简单,但是如果我想使用独立的Zookeeper合奏,那么我需要在configuration中部署Zookeeper: server.1=ip1:2888:3888 server.2=ip2:2888:3888 server.3=ip3:2888:3888 (例如)。 鉴于我不能假定任何有关节点sorting的事情,而且我想保留所有基于Puppet的节点:我应该怎么看待这个问题? 我是否需要使用模板和一些Hiera查找来完成,并在Hieraconfiguration中定义所有的Zookeeper服务器? 还是有没有一种方法,让我不指定所有的节点提前,并让他们相互识别(也许使用自定义的事实)? 我想尽量减less我必须编写的站点特定configuration的数量,所以如果我只能指定“这个节点需要zookeeper模块”,并且它自动发现其他任何拥有zookeeper模块的人,那就太棒了。 系统pipe理员谁做了类似的任何意见,将不胜感激!
我想使用template()连接一些文件。 我读了这个问题 ,如果你确切地知道你想要连接多less个文件,这是很好的。 如果我只是有一个input文件名称的数组呢? $files = ['mymod/a.erb', 'mymod/b.erb', 'mymod/c.erb'] file { "/var/foo/final": content => template ($files) # <– error, can't convert Array to String } 我想避免编写一个parsing器函数。
在我的site.pp清单中,我有以下 import "nodes/*.pp" 这让我很好地为不同的组创build单独的文件。 但是,在每个.pp文件中,我仍然必须显式设置要应用模块和类的节点的名称,如下所示: node puppet-client-1 { include testmodule } 我的问题是,如何将多个节点分组在一起,然后将模块和/或类应用到该节点组? 例如: group testgroup{ puppet-client1 puppet-client2 } node webservers { include testmodule } 当我在这里,我的日志正在吐出这个: The use of 'import' is deprecated at /etc/puppet/manifests/site.pp:2 如果这是不赞成的,我怎么把我的清单文件拆分成组? 谢谢 :)
这可能是显而易见的。 然而,通过facter的帮助,puppetlab的网站和谷歌search后,我仍然无法弄清楚如何检索嵌套的事实。 例如,我可以这样做: >facter os {"release"=>{"major"=>"6", "minor"=>"7", "full"=>"6.7"}, "family"=>"RedHat", "name"=>"CentOS"} 如何通过命令行检索os['name']或os['release']['minor']或任意嵌套的事实?