带puppet的tomcat数据库连接字符串(aco/tomcat模块)

带puppet的tomcat数据库连接字符串(aco/tomcat模块),tomcat,puppet,Tomcat,Puppet,我正在使用模块和此。pp: class somevariable::base { class { '::tomcat': install_from => 'package', package_ensure => 'latest', systemd_service_type => undef, service_ensure => 'stopped', service_enable

我正在使用模块和此。pp:

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)

}
我正在使用hiera设置实例并部署战争,如下所示:

variable::base::instances:
  instance1:
    server_control_port :  '8001'
    http_port           :  '8011'
    ajp_port            :  '8111'
    ajp_params          :  
        tomcatAuthentication : 'false'
    manage_firewall     :  true
  instance2:
    server_control_port :  '8002'
    http_port           :  '8022'
    ajp_port            :  '8222'
    manage_firewall     :  true
variable::app::wars:
   instance1_app:
     path:                 '/var/lib/tomcats/instance1/webapps/sample.war'
     owner:                tomcat
     group:                root
     source:               '/usr/local/src/sample.war'
我希望这也能帮助人们搜索aco/tomcat示例


如何通过hiera为每个实例设置连接字符串实例?

我还尝试在tomcat上下文文件context.xml上设置数据库连接,但没有成功,因此我最终决定以这种方式复制每个应用程序xml文件:

在我的主清单网站上

我使用以下文件创建了名为myapp_tomcat的自定义模块:

modules/myapp_tomcat/manifests/init.pp

模块/myapp_tomcat/files/myapp.xml


我知道您创建了一个类,并使用文件资源放置了一个带有连接字符串的自定义.xml…您还可以使用嵌套的context_*类参数。在您的案例中,上下文资源和上下文监视资源。
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': }
}
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'],
    }

}
<?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>