我使用aco/tomcat模块和此.pp:
NextRecord = data[x]
Number = NextRecord[0]
Date = NextRecord[1]
Time = NextRecord[2]
P1Nickname = NextRecord[3]
P2Nickname = NextRecord[4]
Status = NextRecord[5]
我设置实例并使用hiera部署战争:
class somevariable::base {
class { '::tomcat':
install_from => 'package',
package_ensure => 'latest',
systemd_service_type => undef,
service_ensure => 'stopped',
service_enable => false,
}
$mydefaults = {
admin_webapps => true,
create_default_admin => true,
java_opts => ['-server', '-Xmx1024m', '-Xms256m']
}
$myinstances = hiera('somevariable::base::instances')
create_resources('::tomcat::instance', $myinstances, $mydefaults)
$mywars = hiera('somevariable::app::wars', {})
create_resources('file', $mywars)
}
(我希望这也有助于人们搜索aco / tomcat示例)
如何通过hiera编写context definitions来为每个实例设置连接字符串实例?
答案 0 :(得分:1)
我还尝试在tomcat上下文(文件context.xml)上设置数据库连接但没有成功,所以我最终决定以这种方式复制每个应用程序的xml文件:
在我的主要清单上site.pp
node default {
include stdlib
include java
# Install tomcat and configure it for my application
class { 'tomcat':
install_from => 'package',
package_ensure => 'latest',
service_ensure => 'running',
service_enable => true,
tomcat_native => true,
manage_firewall => false,
}
class {'myapp_tomcat': }
}
我使用这些文件创建了名为myapp_tomcat
的自定义模块:
modules/myapp_tomcat/manifests/init.pp
class myapp_tomcat {
file { '/var/lib/tomcat8/conf/Catalina/localhost/Myapp.xml':
source => 'puppet:///modules/myapp_tomcat/Myapp.xml',
owner => 'root',
group => 'root',
mode => '0644',
require => Service['tomcat8'],
}
}
modules/myapp_tomcat/files/Myapp.xml
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/MyappDS" auth="Container" type="javax.sql.DataSource"
maxTotal="50" maxIdle="20" maxWaitMillis="10000"
username="dbuser" password="dbpassword"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/mydbname"/>
</Context>