我正在玩Vagrant和Puppet,为基于Apache / PHP / Mongo的项目提供开发机器。 我已经正确地设置了所有的组件(使用Puppet Forge的模块),但是对于我来说,我无法弄清楚如何使PHP与Mongo交谈。 phpinfo()表明,Mongo驱动程序没有安装 – 这只是有道理的,因为我不知道如何去安装它。 我用来安装PHP的puppet模块是Lab42的一个,可在http://github.com/lermit/puppet-php上find 。 自述演示如何切换模块而不是驱动程序 (afaik,Mongo连接通过驱动程序而不是模块build立)。 任何帮助,提示,或实际完成这个.pp文件的链接将是最受欢迎的。 谢谢! 更新: 想出了这个神奇的线: php::pecl::module { "mongo": } 基本上通过PECL添加Mongo支持。 但是当木偶试图运行它,我得到这个: err: /Stage[main]/Project/Php::Pecl::Module[mongo]/Package[php-mongo]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=–force-confold install php5-mongo' returned 100: Reading package lists… Building dependency tree… Reading state information… E: Couldn't find […]
使用Puppet设置我的应用程序时,运行npm install时出现问题。 我正在使用Puppet来设置一个node.js应用程序,我们将在几个星期内使用它。 这个应用程序有sqlite3作为依赖。 我遇到的问题是运行'npm install'sqlite3依赖项必须从源代码编译才能正常运行,但正确的命令是: npm install –build-from-source=sqlite3 在Puppet中使用exec命令将无法正常运行。 我有我的木偶代码如下: exec { 'npm install –build-from-source=sqlite3' : cwd => '/var/video_server', user => 'root', path => '/usr/local/node/node-default/bin' } 如何让sqlite3正确编译使用Puppet? 我不想在我设置这个应用程序的每个服务器上手动运行npm install。
我已经通过下载所有DEB文件并进行configuration来从头开始安装Graylog2。 现在我试图在木偶的帮助下在一个环境中安装Graylog2,到目前为止没有运气。 我使用的是来自伪造的elasticsearch / elasticsearch和graylog / graylog 。 这是我目前的configuration: #site.pp node 'mynode' { class {'apt': proxy_host => 'proxynode', proxy_port => '3142', } class {'toolbox':} class {'java':} class {'elasticsearch': ensure => 'present', #enabled => ensure running + enabled true status => 'enabled', ###only works with the repository #version => '1.3.2', package_url => 'puppet:///files/deb/elasticsearch-0.90.13.deb', } elasticsearch::instance {'graylog2':} […]
我试图让木偶去几个虚拟机,我的意图是安装jdk6和tomcat 6使用木偶,但我不能使用百胜,因为机器没有连接到互联网,如果这是一个简单的一台机器解决scheme,那么我可以只是使用手动安装,但我需要自动化,需要使用相同的configurationbuild立和销毁虚拟机。 我结束了使用某人的脚本jdk,这是一个非常脏的模块,它包含从甲骨文文件的所有RPM。 我把它们放在模块上的files文件夹中,然后从puppet master复制它们。 然后单独运行包。 问题在于木偶没有特定的顺序运行。 所以我不得不等待,直到6-7次,当这是试图获得软件包安装,但最后执行命令不会得到执行。 我需要找出一个更好的方法来做到这一点。 一个本地或networking百胜库不是一个选项,所以我需要以相同的方式使用RPM,但我不知道包的链接,我尝试使用链接,然后没有得到安装。 任何指导将是伟大的,因为我需要写这个tomcat和servicemix 我包是低于(非常粗糙的代码) # Class: jdk6 # # This module manages jdk6 # # Parameters: none # # Actions: # # Requires: see Modulefile # # Sample Usage: # class jdk6 { file {'/tmp/': ensure => 'directory', source => 'puppet:///modules/jdk6/', recurse => 'remote', owner => 'root', […]
我已经search了如何解决这个提示,但我一直没有find具体的东西。 我见过木偶apache模块导致“SERVER上的错误400:无效的参数标识符” ,但我使用新鲜/单一的环境安装,因此不相信我面临同样的问题。 我想要实现的是:我想通过木偶使用Puppet Labs网站上提供的模块来安装Openstack。 当我到达安装mysql的阶段时,出现一个令人兴奋的错误,告诉我模块(openstack)正在使用一个无效的参数。 错误 err:无法从远程服务器检索目录:SERVER上的错误400:在节点controller.my.domain上/etc/puppet/modules/openstack/manifests/db/mysql.pp:112上的无效参数config_hash 这是相应的代码位。 # Install and configure MySQL Server class { 'mysql::server': config_hash => { 'root_password' => $mysql_root_password, 'bind_address' => $mysql_bind_address, 'ssl' => $mysql_ssl, 'ssl_ca' => $mysql_ca, 'ssl_cert' => $mysql_cert, 'ssl_key' => $mysql_key, }, enabled => $enabled, } <- Line 112 现在已经指定了MySQL的密码和绑定地址,但是我并不认为这会影响我正在做的事情。 我已经评论他们只是为了看看会发生什么,我仍然得到同样的错误。 我很确定代码本身是好的,但我只是缺less一个库或其他东西,但我的search没有发现任何有用的东西。 谷歌提出了一些build议,但我不认为他们适用, https://groups.google.com/forum/# ! topic/puppet-users/CC83xP0AGEg 。 […]
我目前正在试图find实现这种傀儡粒度的“最佳方法”:我有一台在testing环境中运行memcached的服务器,另一台运行在生产环境中的服务器。 这些服务器使用不同的memcached选项运行,我使用monit监视并在需要时重新启动它们,monit通过puppetpipe理,它通过memcached.monitrc监视memcached,直到如此。 我的问题是:我有一个名为“monit :: monitor”的定义资源,它接收一个名称获取该资源的模板,如 monit::monitor { 'memcached': } 这是monit :: monitor的代码: define monit::monitor($template_params = {}) { file { "/etc/monit/monit.d/${name}.monitrc": ensure => present, content => template("monit/${name}.monitrc.erb"), } } 这将在modules / monit / templates目录中查找“memached.monitrc.erb”并将其打印出来,但是在那个文件中,我需要为memcached参数化内存参数,如果它在testing环境中运行,应该是64m,if生产3072m。 templates / memcached.monitrc.erb看起来像这样 check process memcached with pidfile /var/run/memcached0.pid start program = "/usr/bin/memcached -d -p 11211 -U 11211 -u memcached -m <%= […]
我通常通过kickstart安装puppet 。 显然, puppet现在需要包含在Red Hat的可选频道中的软件包( libselinux-ruby )。 我的印象是,我只能通过在服务器configurationRHN之后分配适当的软件频道授权来使用可选频道。 这是否意味着我们不能使用kickstart来安装可选频道中的软件包? 如果情况并非如此,我们将如何configuration我们的kickstart ?
我为我的傀儡大师创造了一个Alogging。 万一这个ip地址的puppet出现故障,我必须从一个新的ip地址产生一个新的IP地址,我可以把与Alogging中的主机名相关联的ip地址更改为新的ip地址。 我希望我所有的puppetclient都能够通过Alogging中的主机名连接到新的puppetmaster。 $ dig puppetmaster.mywebsite.com ;; ANSWER SECTION: puppetmaster.mywebsite.com. 300 IN A 1.2.3.4 我的客户有主机名puppetclient-01 ,我的主人有主机名puppetmaster 在我的傀儡客户端,我没有任何将puppetmaster的主机名puppetmaster为/etc/hosts的特定IP的条目,因为如果puppetmaster宕机,我必须从新的ip启动一个新的puppet master,我想避免更改所有/etc/hosts文件在我的客户端。 在/etc/puppet/puppet.conf puppetclient-01的/etc/puppet/puppet.conf ,我对默认的唯一更改是添加 [agent] server = puppetmaster.mywebsite.com 在puppetclient-01运行这个 root@puppetclient-01:~# puppet agent –test info: Creating a new SSL key for puppetclient-01 info: Caching certificate for ca info: Creating a new SSL certificate request for puppetclient-01 info: Certificate Request […]
我试图设置一个使用Virtualbox / Vagrant / Puppet的开发盒,目的是最终将所有的机器configuration到生产环境。 但是,这阻止了我现在前进。 我已经安装了Ubuntu的透明Windows 7。 当在Eclipse中启动一个debugging会话来连接到xdebug时,它会挂起57%(在eclipse中不能和xdebug进行通信时)。 这里是我的xdebug.ini,这里的设置出现在phpinfo()中。 xdebug.remote_enable=On xdebug.remote_handler=dbgp xdebug.remote_host=192.168.56.1 xdebug.remote_port=9000 我现在想知道这是否是端口转发的问题? 如果eclipse正在查看端口9000,它会在虚拟机上find端口9000吗? 任何帮助将不胜感激!
对于特定的服务,用户通过networking添加/删除到mySQL表。 我需要复制这些用户在几个Ubuntu服务器(作为普通的shell用户),最好通过Puppet。 目前,我将使用shell脚本来读取表格并创build一个users.pp清单(但处理已删除的用户会变得棘手)。 有没有更有效的方法?