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

时间:2017-03-30 15:10:15

标签: tomcat puppet

我使用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来为每个实例设置连接字符串实例?

1 个答案:

答案 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>