我最近开始使用puppet,我正在尝试使用gce_compute
和apache-tomcat
部署Web服务器。要部署Web服务器,我安装模块puppetlabs-java
和puppetlabs-tomcat
,并使用apache-tomcat
提供的代码创建puppet
的实例:
class { 'java': }
class { 'tomcat': }
class { 'epel': }->
tomcat::instance { 'default':
install_from_source => false,
package_name => 'tomcat',
}->
tomcat::service { 'default':
use_jsvc => false,
use_init => true,
service_name => 'tomcat',
}
但是当我的代理人拉出清单时,我收到了这个错误:
执行'/ usr / bin / apt-get -q -y -o DPkg :: Options :: = - force-confold install tomcat'返回100:读取包列表......
puppet-agent [3302]:构建依赖关系树...
puppet-agent [3302]:阅读州信息......
puppet-agent [3302]:E:无法找到包tomcat
你能帮我弄清楚为什么会这样,以及我如何解决这个错误。提前谢谢。
答案 0 :(得分:1)
该错误来自apt-get
。 Puppet使用运行它的系统上可用的包管理器。在Debian的情况下,它使用apt。
如果您运行apt-get install tomcat
,则会收到相同的错误,因为没有名为tomcat
的软件包。也许您的意思是tomcat6
或tomcat7
?
答案 1 :(得分:0)
Puppet使用自动加载器(https://docs.puppetlabs.com/puppet/latest/reference/lang_namespaces.html)来查找该类,它正在运行,因为它正在运行以下载软件包。
解决此问题的最佳方法是在您想要的tomcat版本上运行apt-get install。您可能会发现在代理程序运行的puppet输出中,您从stdout中看到的输出相同。如果是这种情况,请确保您可以访问apt repos,并且在/ etc / apt * .d目录中具有正确的配置。