tomcat - Puppet:如何使用 Puppet list 配置 Tomcat 数据源?

标签 tomcat datasource puppet

我制作了一个 puppet 类来在我的节点中安装 Apache Tomcat 7.55,但我不知道如何在其中配置数据源。

我的类(class)的最后一步是部署应用程序:

tomcat::war { 'my.war':
    catalina_base => '/opt/apache-tomcat/tomcat_7_0_55',
    war_source    => '/etc/puppet/resources/my.war',
  }

完成此步骤后,我需要在 conf/server.xml 文件中配置以下数据源:

 <Context path="/my-app" docBase="my-app" debug="5" reloadable="true" crossContext="true">
                 <Resource name="jdbc/my-app-db" auth="Container" 
                          type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="5"
                          username="xxx" password="yyy"
                          driverClassName="com.mysql.jdbc.Driver"
                          url="jdbc:mysql://<host>:3306/<database>?zeroDateTimeBehavior=convertToNull"/>
</Context>

如何通过 Puppet 执行此操作?我正在使用 puppetlabs-tomcat 模块。

谢谢!

最佳答案

您可以为server.xml文件创建模板,并设置文件类型如下

$mysql_username = xxx
$mysql_password = yyy
$mysql_server = zzz

file { "${install_path}/conf/server.xml" :
    ensure  => present,
    content => template('tomcat/server.xml.erb'),
    owner   => 'tomcat',
    group   => 'tomcat,
    mode    => '0644',
    notify  => 'Class[tomcat::service]',
}

tomcat/template/server.xml.erb应该包含如下内容

.... blabla

 <Context path="/my-app" docBase="my-app" debug="5" reloadable="true" crossContext="true">
                 <Resource name="jdbc/my-app-db" auth="Container" 
                          type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="5"
                          username="<%= @mysql_username %>" password="<%= @mysql_password %>"
                          driverClassName="com.mysql.jdbc.Driver"
                          url="jdbc:mysql://<%= @mysql_server %>:3306/<database>?zeroDateTimeBehavior=convertToNull"/>
</Context>

.... blabla

关于tomcat - Puppet:如何使用 Puppet list 配置 Tomcat 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27275546/

相关文章:

jsp - JSF中的简单程序抛出404错误

java - Bluemix Liberty server.xml MySQL 数据源配置

sql - jboss数据源统计JMX监控-不一致信息

java - Spring Boot autoconfig 仍在使用 Tomcat 数据源而不是 HikariCP?

xml - Puppet Augeas - 无法更新包含 CDATA 的 xml 节点中的值

java - Tomcat websocket管理和识别

tomcat - Apache Tomcat 集群 : Shared Objects/Events/Messages/Singletons

puppet - 如何使用 puppet 添加 apt-keys?

ruby - puppet/ ruby : How to use a ruby variable in a bash line?

java - 实例化 servlet 类时出错 [org.ran.FristServlet]