我创建了一个puppet类来在我的节点中安装Apache Tomcat 7.55,但我不知道如何在其中配置数据源。
我班级的最后一步是部署一个应用程序:
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模块。
谢谢!
答案 0 :(得分:4)
您可以为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
答案 1 :(得分:2)
你可以使用带有xml镜头的augeas工具在server.xml中配置它。你需要安装带木偶的augeas模块。
答案 2 :(得分:0)
这是一个示例配置
tomcat::config::server::context {'alfresco.war':
doc_base => 'alfresco.war',
context_ensure => present,
catalina_base => '/var/lib/tomcat7/alfresco.war',
parent_service => 'Catalina',
parent_engine => 'Catalina',
parent_host => 'localhost',
server_config => '/etc/tomcat7/server.xml',
additional_attributes => {
'path' => '/alfresco',
},
}