2

我想在 /usr/share/tomcat7/conf/context.xml 添加这段代码:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   sticky="true"
   memcachedNodes="n1:<%= node['redis']['host']%>:<%= node['redis']['port']%>"
   requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
/>

我正在使用 Chef 11.4,我创建了自定义说明书并修改了 /opsworks_java/templates/default/webapp_context.xml.erb

但它不起作用。它适用于其他文件:server.xml!

我怎样才能做到这一点?

谢谢。

4

2 回答 2

2

如果您使用的是 Chef 11.10,这很简单:

  1. 您需要创建/使用自定义食谱。

  2. 在其中制作以下文件夹结构:

    opsworks_java/模板/默认/

  3. 复制文件: https ://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/opsworks_java/templates/default/webapp_context.xml.erb

  4. 根据需要对其进行编辑。

这将完成您需要完成的工作。

于 2014-06-12T09:57:29.453 回答
2

最后我找到了解决方案,我创建了 context.xml 文件的模板:opsworks-cookbooks/opsworks_java/templates/default/context.xml.erb

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
          sticky="true"
          memcachedNodes="n1:<%= node['redis']['host']%>:<%= node['redis']['port']%>"
          requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"   />
</Context>

然后我通过添加以下行在 opsworks-cookbooks/opsworks_java/recipes/tomcat_container_config.rb 中调用它:

template 'tomcat context configuration' do
  path ::File.join(node['opsworks_java']['tomcat']['catalina_base_dir'], 'context.xml')
  source 'context.xml.erb'
  owner 'root'
  group 'root'
  mode 0644
  backup false
  notifies :restart, 'service[tomcat]'
end

它工作正常!

于 2014-06-12T15:10:53.413 回答