所以我的想法是使用puppet安装tomcat7,然后将Solr的war文件部署为Web应用程序。这是我发现的。
puppet forge上有很多tomcat7模块,但它们都没有开箱即用,我不确定它们是否真的有效,而且很多都属于将代码作为文档。
以 puppet模块安装fhuertas-tomcat7 作为第一个例子:
安装fhuertas-tomcat7(v0.0.1)
当我跑步时,我得到一个错误:sudo puppet apply --modulepath=/home/qa/puppet_qa/modules/ -e "include tomcat7" --debug
错误:无法在任何Hiera数据文件中找到数据项service_path,也没有默认提供的
和类似的情况如下:
puppet module install llehmijo-tomcat7_rhel ( no longer maintained )
https://github.com/Spredzy/puppet-tomcat7(声称是CentOs)但是有一个Apt(适用于centos ??)先决条件,而且它也没有安装。
我想做的就是通过puppet安装tomcat7,然后安装Solr。似乎是一个简单的请求。同时我正在努力解决确切的问题,并能够安装和运行tomcat7,但不知道如何安装tomcat-users.xml
这是我的init.pp的一部分
exec {'start service':
command => 'sh "startup.sh"',
cwd => "/usr/share/apache-tomcat-7.0.42/bin",
path => '/usr/share/apache-tomcat-7.0.42/bin/:/usr/bin:/bin',
#require => File['/usr/share/apache-tomcat-7.0.42/conf/tomcat-users.xml']
}
所以如果我取消评论require =>文件[]
Error: Could not find dependency File[/usr/share/apache-tomcat-7.0.42/conf/tomcat-users.xml] for Exec[start service]
答案 0 :(得分:2)
file { "/etc/tomcat7/tomcat-users.xml":
owner => 'root',
require => Package['tomcat'],
notify => Service['tomcat'],
content => template('tomcat/tomcat-users.xml.erb')
}
这对于不在puppet forge上运行的模块和github有效,我认为没有解决方案好像不能正常工作,那么这些模块可以作为指导或提示。
答案 1 :(得分:1)
我使用了受支持的https://forge.puppetlabs.com/puppetlabs/tomcat并按照示例使用软件包正确安装了所有内容(至少在Ubuntu上)。也可以从源代码安装它。 https://github.com/puppetlabs/puppetlabs-tomcat/tree/master/examples。请参阅以下示例:
class { 'java': }
class { 'tomcat':
install_from_source => false,
user => 'tomcat7',
require => Class['java']
}
tomcat::instance { 'tomcat7':
package_name => 'tomcat7',
require => Class['tomcat']
}->
tomcat::instance { 'tomcat7-admin':
package_name => 'tomcat7-admin',
}->
tomcat::config::server::tomcat_users {
'tomcat-admin':
catalina_base => '/var/lib/tomcat7',
element => 'user',
password => 'test',
roles => ['manager-gui','admin'];
'deployer':
catalina_base => '/var/lib/tomcat7',
element => 'user',
password => 'deployer',
roles => ['manager-script'];
}->
tomcat::service { 'tomcat7':
service_ensure => running,
catalina_base => '/var/lib/tomcat7',
require => Tomcat::Instance['tomcat7']
}